2011-12-13 18 views
0

可能性の重複:
What is the difference between String.Empty and “”
In C#, should I use string.Empty or String.Empty or “”?
Default string initialization: NULL or Empty?C#で文字列を初期化する必要はありますか?

私は、文字列を初期化する関心があるかどうかを知りたいですか?

String value1 = String.Empty; 

EDIT:私の質問は、より多くのは、なぜ私はそれがコードの可読性を高めるため、String.Emptyのを使用し、IMO「」またはString.Emptyの

+0

私は間違っていました。これらは同じようにコンパイルされません。 – SLaks

+0

@SLaks、これはあなたの回答が削除される前にあなたをアップウィニングから3人を防ぐことはできませんでした;) –

+1

どのアプローチが良いか、または文字列をまったく初期化する必要があるかどうかについての質問ですか? – JohnFx

答えて

2

あなたのコードの例外。文字列が決して設定されないコードパスを作成するのは簡単で、その文字列のメソッドを呼び出すとエラーになります。

+0

+1。 –

+1

@ noah19 - _revised_質問です。 –

4

の間で選択するよりも、文字列を初期化する必要があります。 GendarmeやFxCopのようなコードスタイルのスキャナでは、ベストプラクティスとして ""の使用がフラグされます。

編集: メモリ使用量に関する説明が削除されましたが、これは間違っていました。はい、null参照の可能性を最小限に抑えるために、文字列を初期化するために、良いアイデアです...質問は、「文字列を初期化するための最適な方法」「なぜあなたは、文字列を初期化する必要がある」という意味ではなく

を想定し

+0

とにかく正規化されていないのですか、それともJavaと違うのですか? –

+0

@ KublaiKhan:いいえ。それを試してみてください。 – SLaks

+0

@jmacinnes:FxCopルールはどこにも見つかりません。 (それはよく知られていますが) – SLaks

1

空文字列と空文字列の間に意味のある違いがあることを考えると、その答えは「それは依存する」と思う。あなたのコードがヌル値を使用しておらず、値が非ヌルであるという前提で変数を参照するコードを書くことができるようにするには、初期化するのが理にかなっています。しかし、nullが有効で有用であり、初期化が意味をなさない場合もあります。例えば、文字列がいくつかのテスト装置から受け取った値を保持している場合、nullは値が受け取られなかったことを伝え、何かが受け取られたことを伝え、空の文字列になります。

関連する問題