両方を「キャッチ」する便利な方法があります
if (String.IsNullOrEmpty(Master.SharedInfo)) {
...
}
nullと""等しくありません。null文字列がまったくないことを意味します。""長さの文字列です0。
string s = null;
int i = s.Length; // <-- Throws null reference exception
だが
string s = "";
int i = s.Length; // OK, i => 0
""とString.Emptyは同等です。String.Emptyの代わりに常に使用する必要があると言う人もいます""が、実際には違いはありません。
アップデート
等しい文字列定数はコンパイラによってインターンされます。つまり、コンパイラは等しい定数を1回だけ格納します。(@BobToddのコメントに応じて)簡単なテストを行うことができます。
string s = "";
Console.WriteLine(Object.ReferenceEquals(s, "")); // --> true
Console.WriteLine(Object.ReferenceEquals(s, String.Empty)); // --> true
完全を期すために(@JoelEthertonのコメントによる)。.NET Framework 4.0以降、テストできます
if (String.IsNullOrWhitespace(Master.SharedInfo)) {
...
}
" "これは、またはのような文字列もキャッチ"\t"します。