2016-06-01 10 views
1

文字列をstring.emptyとして宣言し、後で動的に値を追加するアプリケーションでは、多くのシナリオがあります。 C#では、は文字列変数で、string.emptyの文字列変数は同じですか?

string status 

string status = String.Empty; 

同じですか?

+2

の文字列である空定数がnull の値を持つ文字列オブジェクトを作成します。 –

+2

文字列は参照型です。デフォルトは 'null'です。あなたは気にするかもしれません。 – SLaks

+2

String.Emptyは ""と同じです – Gusman

答えて

3

これらのコードは同等ではありません。

  • あなたは方法のstring status外を宣言した場合、それはnullのデフォルト値に初期化されます。

  • あなたはメソッド内string statusを宣言した場合は、それが初期化されていない、とあなたは明示的に値を与えるまで、あなたはそれを使用することはできません。あなたがstring status = String.Empty;を必要とするかどうかは

はあなたの状況に依存しますが、あなたのコードは時々スロー見つけた場合、それはNullReferenceExceptionを回避するためのまともな方法のように思えます。

2

いいえ同じではありません。 String datataypeはnullを許可します。また、すべての変数/属性/プロパティを常に初期化することをお勧めします。

string status = String.Empty; 
1

文字列変数のデフォルト値はヌル

文字列の状態です。

  • 際メソッド内:それは、メソッドの外にするとき
  • 初期化されていない滞在する: 文字列reference typeあるので、それは、 ヌル値を持つ文字列オブジェクトを作成します。

string status = String.Empty;

いいえ、文字列が参照タイプデフォルトでゼロ長

+1

* Null値を持つ文字列オブジェクトを作成します*間違っています。クラスレベルの変数でのみ発生し、メソッドは初期化されないためコンパイルされません。 – Gusman

+1

はい、あなたは正しいです、私は編集するつもりです:) –

関連する問題