С учетом следующего кода:
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 с короткими ошибками