다음 코드가 주어집니다.
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
일치하지 않는 것은 내 이해입니다 . VS 코드에 대한 인텔리는 나에게 말한다 A는 뿐만 아니라. 이견있는 사람?s == null
(null as string) != null
o
string
유사 항목 : Null 검사가있는 C # 7 스위치 케이스
o
한다string
(- 즉, 제네릭으로 확인 된Foo(o)
경우Foo<T>(T template) => typeof(T).Name
) - 그것은 매우 흥미로운 사건이 어디string x
동작합니다 다르게 이상의var x
경우에도x
같은 (컴파일러에 의해) 입력 할 때string