【发布时间】:2017-08-14 12:27:36
【问题描述】:
C#7 引入了一个名为 patterns 的新功能,您可以将其与 Is-Expression 或 Switch 案例一起使用,如下所示:
string str = null;
switch(str){
case string x:
Console.WriteLine("string " + x);
break;
default:
Console.WriteLine("default");
break;
}
你会认为它会进入案例#1,因为它是相同的类型,但它没有。
【问题讨论】:
-
“因为它是同一类型” - 不是真的。如果你这样做
object o = str; bool isString = o is string;那么isString将是错误的...... -
是的,正确,空字符串不引用 System.String 对象
-
@JonSkeet,如果您在下面看到我的回答并查看它,我将不胜感激。
-
Patrick 的回答绝对是一个更好的 IMO。
标签: c# switch-statement pattern-matching c#-7.0 null-string