最佳答案
在编写 switch 语句时,对于 case 语句可以打开的内容似乎有两个限制。
例如(是的,我知道,如果您正在做这种事情,这可能意味着您的 面向对象(OO)架构是可疑的——这只是一个人为的例子!),
Type t = typeof(int);
switch (t) {
case typeof(int):
Console.WriteLine("int!");
break;
case typeof(string):
Console.WriteLine("string!");
break;
default:
Console.WriteLine("unknown!");
break;
}
在这里,switch ()语句失败,表示“ A 值为期望的整型”,case 语句失败,表示“ A 值为期望的常量”。
为什么要实行这些限制,其根本原因是什么?我不明白为什么 switch 语句 已经仅仅屈服于静态分析,也不明白为什么打开的值必须是整数(即原始值)。理由是什么?