C# 枚举到整数。整数到枚举。最好的转换方式是什么?
现在我想知道如何获取枚举的整数值并将整数值转换为枚举 意志 将dayNo的值更改为1 及 意志 将日期。星期二指定为可变日期C# 枚举到整数。整数到枚举。最好的转换方式是什么?,c#,.net,enums,C#,.net,Enums,现在我想知道如何获取枚举的整数值并将整数值转换为枚举 意志 将dayNo的值更改为1 及 意志 将日期。星期二指定为可变日期 这是解析的最好方法吗?是的,它会的。但是你在发布之前试过吗?总之,你对枚举的理解是正确的 如果您觉得使用此方法更方便,可以使用从number/name转换为enum类型,但它在可读性或性能方面没有任何好处 奇怪的是,为了解析数字,您需要首先对它们调用ToString(),因为Enum.parse没有整数重载 从MSDN页面: Days day = (Day
这是解析的最好方法吗?是的,它会的。但是你在发布之前试过吗?总之,你对枚举的理解是正确的 如果您觉得使用此方法更方便,可以使用从number/name转换为enum类型,但它在可读性或性能方面没有任何好处 奇怪的是,为了解析数字,您需要首先对它们调用
ToString()
,因为Enum.parse
没有整数重载
从MSDN页面:
Days day = (Days) 2;
将一个或多个枚举常量的名称或数值的字符串表示形式转换为等效的枚举对象。
是的,这很容易检查: Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. 这将输出
Days d = (Days)3;
Console.WriteLine(d);
作为最佳实践,您的
enum
名称应为Day
而不是Days
;上面的变量d
表示天
而不是天
。请参见MSDN上的。是,它将完全执行以下操作:除了Enum
应为Enum
Wednesday
要使用Enum.Parse,必须提供一个字符串,因此如果要从int进行强制转换,必须通过一个难看的字符串
public enum Days
{
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
Sunday = 7
}
。。。这两个都是星期三。你不能亲自试一试吗?选角应该可以。顺便说一句,BCL中已经有了
DayOfWeek
enum:谢谢,我只是想知道除了解析时,是否还有其他方法可以执行上述操作。enum.Parse
不会从int
转换为相应的enum
值。这个答案是错误的或充其量是误导性的。@Jason-根据文档,它确实转换为等效的枚举对象。有点像头发分割器,它将从int.Days x=(Days)Enum.parse(typeof(Days),“3”)的字符串代表进行解析;或Days y=(Days)Enum.Parse(typeof(Days),3.ToString());但不是int本身@Oded:但是没有具有类型为int
的参数的Enum.Parse
重载。
Wednesday
public enum Days
{
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
Sunday = 7
}
Days x = (Days)Enum.Parse(typeof(Days), "3");
Days y = (Days)Enum.Parse(typeof(Days), 3.ToString());