2011-08-10 7 views
1

可能性の重複:C#4.0でのメソッドの引数のデフォルト値を指定するとき、私はなく、String.Emptyの "" を使用することができ
Why isn't String.Empty a constant?、なぜString.Emptyを、フィールドの代わりに、一定のでしょうか?

。これはString.Emptyをは「」以外の何かを意味するかもしれませんが、それが一定であれば、それはただのconstとして宣言されていない意味をなさないと思います。

は、それがあまりにも言語にコアであり、破断の変更になるので、彼らはconstのでクリーンアップすることができないというMicrosoftの一部にだけ間違いこのましたか?それとも、この人口フィールドの代わりに、最初の場所でのconst作るための正当な理由がありましたか?

答えて

3

それは文字通りすることができない、またはそれはStringのネイティブの半分からアクセス可能ではないでしょう。

コメント(参照元では)言う:

// The Empty constant holds the empty string value. 
//We need to call the String constructor so that the compiler doesn't mark this as a literal. 
//Marking this as a literal would mean that it doesn't show up as a field which we can access 
//from native. 
public static readonly String Empty = ""; 
+0

興味深いことに、コメントは「私たちは、文字列コンストラクタを呼び出す必要がある」と言うが、コードは、文字列コンストラクタを呼び出すことはありません。 – phoog

関連する問題