1
30
不,你可以用任何
枚举是数字的一组名称,实际上…但编译器和CLR都不强制枚举类型的值具有名称。这是一种痛苦,但它存在…
我建议一个默认案例
|
2
23
当然,jon完全正确,一个枚举可以有其基础类型的任何值,因此开关不是完全的,因此有一个不返回的代码路径。 然而 ,这不是对问题的完整分析。 即使在这种情况下,开关是彻底的,你仍然会得到错误。 试试看:
或
在这两种情况下,您将得到相同的“非空方法中的可到达终点”错误。 这只是C规范“可到达性检查”部分中的一个监督。我们将switch语句的端点定义为如果没有默认的节、句点,则可以访问。对于完全消耗其输入的每一个可能值的交换机,没有特别的特例。这是语言设计者们忽略的一个小问题,而且它从来都不是解决它的足够高的优先级。 有关switch语句分析的其他三个有趣事实,请参阅: |
3
1
这是因为如果t的值与任何开关案例都不匹配,它将从开关中掉出来,因此方法不会返回值。但是,您已经声明它将返回一个字符串。您需要在开关中添加一个默认值,或者返回一个空值:
|
4
1
添加默认案例:
|
5
0
如jon所指出的,该值是整数-枚举可以从任何整数值强制转换。您只需要处理默认值。 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |