如何在C#中建立一个long型的枚举,它的长度是64位

hproof 2003-05-19 08:23:52
public enum MyEnum
{
ME_DATA1 = 0x1L, // 错误:无法将类型"long"隐式转换为"int"
}

该枚举必须是64位长的,,,
...全文
187 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hproof 2003-05-19
示例 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# 关键字 | 默认值表 | 内置类型表 | 类型 | 值类型


// 哎,,,,我为什么没想到啊~~~
  • 打赏
  • 举报
回复
Knight94 2003-05-19
如下:
// 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);
}
}
  • 打赏
  • 举报
回复
hproof 2003-05-19
枚举无法建立其它类型的吗?比如long。
记得在c中枚举的类型是可变的:当数据都很小时,枚举就是byte;当数据比较大时,枚举就是int;更大时,不就是long了吗?

在这个枚举定义中,各元素标识了一个ID,它需要64位长。我希望能用枚举来实现,而不是定义多个long数据/常量。

不知道是否有实现的可能。
  • 打赏
  • 举报
回复
visualcpu 2003-05-19
枚举中的元素是整型的!
public enum MyEnum
{
ME_DATA1 =1;
}
ME_DATA1默认为0
  • 打赏
  • 举报
回复
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2003-05-19 08:23
社区公告

让您成为最强悍的C#开发者