只是出于好奇。
如果我有以下代码
public static string Format(dynamic exception)
{
switch (exception.GetType().ToString())
{
case "test":
return "Test2";
}
return null;
}
我收到错误“开关表达式或案例标签必须是布尔、字符、字符串、整数、枚举或相应的可空类型”
但如果我有以下代码
public static string Format(dynamic exception)
{
string test = exception.GetType().ToString();
switch (test)
{
case "test":
return "Test2";
}
return null;
}
一切都编译得很好。如果 switch 正在检查 Type string 和 ToString() 的变量,有什么区别?还是因为在调用 ToString() 之前有机会抛出异常?