如下: // keyword_enum2.cs // Using long enumerators using System; public class EnumTest { enum Range :long {Max = 2147483648L, Min = 255L}; public static void Main() { long x = (long) Range.Max; long y = (long) Range.Min; Console.WriteLine("Max = {0}", x); Console.WriteLine("Min = {0}", y); } }
示例 2 在此例中,base-type 选项用于声明成员为 long 类型的 enum。注意:即使枚举的基础类型为 long,仍必须通过显式转换将枚举成员显式转换为 long 类型。// keyword_enum2.cs // Using long enumerators using System; public class EnumTest { enum Range :long {Max = 2147483648L, Min = 255L}; public static void Main() { long x = (long) Range.Max; long y = (long) Range.Min; Console.WriteLine("Max = {0}", x); Console.WriteLine("Min = {0}", y); } } 输出 Max = 2147483648 Min = 255 请参见 C# 关键字 | 默认值表 | 内置类型表 | 类型 | 值类型 // 哎,,,,我为什么没想到啊~~~
记得在c中枚举的类型是可变的:当数据都很小时,枚举就是byte;当数据比较大时,枚举就是int;更大时,不就是long了吗?在这个枚举定义中,各元素标识了一个ID,它需要64位长。我希望能用枚举来实现,而不是定义多个long数据/常量。不知道是否有实现的可能。
// keyword_enum2.cs
// Using long enumerators
using System;
public class EnumTest
{
enum Range :long {Max = 2147483648L, Min = 255L};
public static void Main()
{
long x = (long) Range.Max;
long y = (long) Range.Min;
Console.WriteLine("Max = {0}", x);
Console.WriteLine("Min = {0}", y);
}
}
在此例中,base-type 选项用于声明成员为 long 类型的 enum。注意:即使枚举的基础类型为 long,仍必须通过显式转换将枚举成员显式转换为 long 类型。// keyword_enum2.cs
// Using long enumerators
using System;
public class EnumTest
{
enum Range :long {Max = 2147483648L, Min = 255L};
public static void Main()
{
long x = (long) Range.Max;
long y = (long) Range.Min;
Console.WriteLine("Max = {0}", x);
Console.WriteLine("Min = {0}", y);
}
}
输出
Max = 2147483648
Min = 255
请参见
C# 关键字 | 默认值表 | 内置类型表 | 类型 | 值类型
// 哎,,,,我为什么没想到啊~~~