鉴于以下基本课程:
public class MyClass
{
private object m_memberVariable;
public MyClass()
{
this.m_memberVariable = new object();
}
}
以下哪种test
方法的实现是更好的编程实践?
private void test()
{
if(this.m_memberVariable == null)
{
return;
}
System.Diagnostics.Debug.Write(this.m_memberVariable.ToString());
}
要么
private void test()
{
if(this.m_memberVariable != null)
{
System.Diagnostics.Debug.Write(this.m_memberVariable.ToString());
}
}
大约10年前,当试图从一位教授那里回忆起来时,if语句的最佳实践是使条件可能更频繁而不是假(后者)。然而,最近我一直在使用ReSharper的试验,他们的建议是前者。 m_memberVariable
成员在类的实例化时初始化,并且在类的生命周期中可能非空。
答案 0 :(得分:0)
我总是尝试检查非null并继续 - 那么你只有一个退出点来自函数,所以退出例程只需要放在二进制代码中一次,这会导致较小的结果。但我想现代编译器无论如何都会优化它,谁知道呢。