【问题标题】:Is it better to check for null and return or check for non-null and continue?检查 null 并返回或检查非 null 并继续是否更好?
【发布时间】:2012-10-17 00:47:27
【问题描述】:

给定以下基本类:


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 成员在类的实例化时被初始化,并且在类的生命周期内可能是非空的。

【问题讨论】:

    标签: null null-check


    【解决方案1】:

    我总是尝试检查非 null 并继续 - 这样您就只有一个函数退出点,因此退出例程必须只在二进制代码中放置一次,这会导致较小的结果。但我猜现代编译器无论如何都会优化它,谁知道呢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-02
      • 2011-01-31
      • 2019-12-31
      • 2010-12-14
      • 2020-04-15
      相关资源
      最近更新 更多