С учетом следующего кода:
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
?
Насколько я понимаю, case string s
не соответствует, когда s == null
, потому что (эффективно) (null as string) != null
оценивается как false. IntelliSense на VS Code говорит мне, что o
является string
. Любые мысли?
Символьный: С# 7 с короткими ошибками