将枚举的基础类型更改为long

本文关键字:long 类型 枚举 | 更新日期: 2023-09-27 18:09:32

可能重复:
C#int、Int32和enum';s

C#允许您将枚举的基本类型设置为long。但是,当您试图编译以下两个语句时,您将如何解释行为上的差异:

public enum Colors : long
{
   Blue = 512L,
   Purple = 1024L
}

public enum Colors : System.Int64
{
   Blue = 512L,
   Purple = 1024L
}

第一个编译oK(with:long(,而第二个编译(with:System.Int64(不会编译-您会得到一个错误:键入byte、sbyte、short、ushort、int、uint、long或ulong预期注意:很明显,我理解错误消息。让我困惑的是,我认为"long"或多或少是"Int64"的别名

将枚举的基础类型更改为long

这是C#编译器的限制,不会在Enum上引入对此的支持。您必须使用longAlex Turner(Visual Basic和C#程序经理(在MSFT:

由Microsoft于2010年6月25日上午8:53发布感谢您对Visual Studio的建议!

正如您所指出的,我们可以支持在这里使用Int16而不是int,但这不会为C#程序提供任何额外的表达能力(而且需要键入更多的字符!(。我们不太可能投入我们的资源来为Enums添加这种支持。