可能重复: 演员的int枚举在C#
我得到了以下枚举:
公开枚举detallistaDocumentStatus {
///<备注/>
原版的,
///<备注/>
复制,
///<备注/>
REEMPLAZA,
///<备注/>
删除,
}
后来我型detallistaDocumentStatus的类属性:
公共detallistaDocumentStatus documentStatus {
得到 {
返回this.documentStatusField;
}
组 {
this.documentStatusField =价值;
}
}
在现实生活中,用户将发送给我们,他们在声明的顺序一个数字(1,2,3或4)再presenting每个枚举值。
那么,有没有可能投这样?
det.documentStatus =(detallistaDocumentStatus)3;
如果没有,我怎么能得到使用整数作为索引,我们使用了很多枚举的枚举值,所以我们想要做的事一般的和可重复使用的 解决方案
是的,这是可能的投枚举
到 INT
,反之亦然,因为每个枚举
实际上是重新按默认psented由 INT
$ P $。您应当手动指定成员的值。
默认情况下,开始从0到N。
它也可以施放枚举
到字符串
,反之亦然。
公开枚举MyEnum
{
值1 = 1,
值2 = 2,
值3 = 3
}
私有静态无效的主要(字串[] args)
{
INT enumAsInt =(INT)MyEnum.Value2; // enumAsInt == 2
INT myValueToCast = 3;
字符串myValueAsString =值1;
MyEnum myValueAsEnum =(MyEnum)myValueToCast; //将以值3
MyEnum myValueAsEnumFromString;
如果(Enum.TryParse< MyEnum>(myValueAsString,出myValueAsEnumFromString))
{
//把这里的逻辑
// myValueAsEnumFromString将值1
}
到Console.ReadLine();
}
Possible Duplicate: Cast int to Enum in C#
I got the following enum:
public enum detallistaDocumentStatus {
/// <remarks/>
ORIGINAL,
/// <remarks/>
COPY,
/// <remarks/>
REEMPLAZA,
/// <remarks/>
DELETE,
}
then I got a class property of type detallistaDocumentStatus:
public detallistaDocumentStatus documentStatus {
get {
return this.documentStatusField;
}
set {
this.documentStatusField = value;
}
}
In the real life the user will send us a number (1, 2, 3 or 4) representing each enum value in the order they are declared.
so, is it possible to cast like this?
det.documentStatus = (detallistaDocumentStatus)3;
if not, how could I get the enum value using an integer as an index, we are using a lot of enums, so we want to do something generic and reusable
解决方案Yes, it's possible to cast Enum
to int
and vice versa, because every Enum
is actually represented by an int
per default. You should manually specify member values.
By default it starts from 0 to N.
It's also possible to cast Enum
to string
and vice versa.
public enum MyEnum
{
Value1 = 1,
Value2 = 2,
Value3 = 3
}
private static void Main(string[] args)
{
int enumAsInt = (int)MyEnum.Value2; //enumAsInt == 2
int myValueToCast = 3;
string myValueAsString = "Value1";
MyEnum myValueAsEnum = (MyEnum)myValueToCast; // Will be Value3
MyEnum myValueAsEnumFromString;
if (Enum.TryParse<MyEnum>(myValueAsString, out myValueAsEnumFromString))
{
// Put logic here
// myValueAsEnumFromString will be Value1
}
Console.ReadLine();
}
相关推荐
最新文章