最近、C# のコンパイラにとって 2 つの二重引用符が何を意味するのか疑問に思う問題に遭遇しました。
string Var, blankVar;
Var = null; //Var is not instantiated or defined.
Var = ""; //Var should be blank or empty, but it is not null.
Var = "house"; //Var is defined as the string value house.
blankVar = ""; //blankVar should be blank or empty, but it is not null.
この時点で、コンパイラは "house" の値を文字列変数 Var に格納する必要があります。文字列変数 blankVar は空にする必要があります。
if (Var.Contains(blankVar)) //if "house" contains "" then..
{
// do something
}
Var が "house" に等しく、空の ("") が含まれていない場合、なぜコンパイラはまだ if ステートメントにステップインするのですか?