C#switch语句限制 - 为什么?
在编写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()语句失败,带有'一个预期的整数类型的值',case语句失败并带有'a expected value is expected'。
为什么会有这些限制,以及基本理由是什么?我看不出有任何理由switch语句具有只能屈从于静态分析,为什么在接通的值必须是完整的(即原语)。理由是什么?
冉冉说
慕桂英4014372
相关分类