0

次の基本クラスが与えられます。


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ではない可能性があります。

4

1 に答える 1

0

私は常にnull以外をチェックして続行しようとします-関数からの出口点は1つしかないため、出口ルーチンをバイナリコードに1回だけ配置する必要があるため、結果が小さくなります。しかし、最新のコンパイラは、いずれにしてもそれを最適化すると思います。

于 2012-10-26T18:23:28.770 に答える