【发布时间】:2010-12-21 06:26:29
【问题描述】:
如果int 是Int32 的同义词,为什么
enum MyEnum : Int32
{
Value = 1
}
...不编译?在哪里
enum MyEnum : int
{
Value = 1
}
即使将光标悬停在 int 单词上也会显示 struct System.Int32?
【问题讨论】:
-
编译时的错误是什么?
-
@Donnie:需要键入 byte、sbyte、short、ushort、int、uint、long 或 ulong。显然,.Net 中的限制迫使用户在枚举中只使用关键字而不是类名。
-
有趣。学到了一些东西,耶!
-
这看起来像是 C# 和/或规范中的错误。我召唤 Eric Lippert 解释一下!
-
编译器正在正确实现规范,MS 认为规范是正确的,因此它不是“错误”,只是“不直观的行为”。这意味着,不太可能很快得到修复。