次のコードがあるとします:
string someString = null;
switch (someString)
{
case string s:
Console.WriteLine("string s");
break;
case var o:
Console.WriteLine("var o");
break;
default:
Console.WriteLine("default");
break;
}
switchステートメントが一致するのはなぜcase var oですか?
(事実上)falseと評価されるため、case string s一致しないのは私の理解です。VS CodeのIntelliSense は、それも同様であると教えてくれます。何かご意見は?s == null(null as string) != nullostring
oされるstring( -つまり、ジェネリックで確認Foo(o)どこFoo<T>(T template) => typeof(T).Name) -それは非常に興味深いケースであるstring x振る舞いは異なるよりはvar xさえx(コンパイラによって)入力時string