2
public class TestClass
{
    const MyType SOMECONSTANT = null;

    protected string TestString { get; set; }    
}

public class MyType
{
    protected string FieldA { get; set; }
}

上記のコードは有効であり、コンパイルされます。なぜC#はで参照型constを許可するのnullですか?SOMECONSTANTこれは常に行われるので、どうすればこれを使用できnullますか?

4

1 に答える 1

2

これは、開発サイクルの後半のある時点で、指定されたオブジェクトのインスタンスを保持するプレースホルダーとして使用できます。一般に、定数は比較対象として使用されます。その考えを取り入れて、プログラマーBが後でオブジェクトPERFECT_TYPEを実装してインスタンス化すると仮定すると、次のように言うことができます。

const MyType PERFECT_TYPE = null;

そして後で私は持っているかもしれません

if (myInstance.Equals(TestClass.PERFECT_TYPE)) { /*do stuff*/ }

この状況では、の実装が必要であると指摘しますMyType.Equals()が、アイデアは得られます。このようなことは、スタブ、特にアジャイル開発では珍しいことではありません。スタブは定数よりもプロパティである可能性が高いと思いますが、その目的のための各ツールは...

于 2013-02-18T22:13:17.047 に答える