【发布时间】:2011-06-27 16:18:55
【问题描述】:
如果我这样声明一个枚举...
public enum MyEnum : byte {
Val1,
Val2
}
...它正在工作。
如果我这样声明一个枚举...
public enum MyEnum : System.Byte {
Val1,
Val2
}
...它不工作。编译器抛出:
错误 CS1008:需要类型 byte、sbyte、short、ushort、int、uint、long 或 ulong
由于 byte 是实际类型 System.Byte 的别名,为什么我不能使用第二个声明?
【问题讨论】:
-
出于好奇,您是否尝试过使用 System.Int32?我知道它没有回答你的问题。我只是想知道它是否特定于字节。
-
@Mike:我很确定这不是具体的。我也遇到过这个问题(我非常喜欢旧名称的“新”名称,并尽可能尝试使用它们)。我认为他们只是没有更新解析器/编译器或其他东西(它看到
Byte并且不承认它是byte) -
和@Brad Christie。谢谢,只是好奇,现在不在编译器附近。这是有道理的,如果它发生在一个人身上,它就会发生在所有人身上,但你只是想确定一下。
-
这不再是真的。参考:stackoverflow.com/a/35571818
标签: c# compiler-errors