how to get string value from Enum
本问题已经有最佳答案,请猛点这里访问。
我对枚举感到困惑。这是我的枚举
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | enum Status { Success = 1, Error = 0 } public void CreateStatus(int enumId , string userName) { Customer t = new Customer(); t.Name = userName; // t.Status = (Status)status.ToString(); - throws build error t.Status = //here I am trying if I pass 1 Status ="Success", if I pass 0 Status ="Error" } |
Error - Cannot convert string to enum.Status
1 2 3 4 5 | public class Customer { public string Name { get; set;} public string Status {get; set;} } |
如何使用枚举状态设置客户对象的状态属性?
(如有其他情况则不允许,或切换梯子)
你只需要打电话给
1 | t.Status = Status.Success.ToString(); |
msdn中枚举的ToString()。
如果已传递枚举ID,则可以运行:
1 | t.Status = ((Status)enumId).ToString(); |
它将整数强制转换为枚举值,然后调用
编辑(更好的方法):您甚至可以将方法更改为:
1 | public void CreateStatus(Status status , string userName) |
并称之为:
1 | CreateStatus(1,"whatever"); |
并转换为字符串:
1 | t.Status = status.ToString(); |
使用toString()方法获取枚举的字符串值很容易。
1 2 3 4 5 6 7 | enum Status { Success = 1, Error = 0 } string foo = Status.Success.ToString(); |
更新
如果将枚举类型包含在方法的输入中(如下所示),则更容易:
1 2 3 4 5 6 7 | public void CreateStatus(Status enums, string userName) { Customer t = new Customer(); t.Name = userName; t.Status = enums.Success.ToString(); } |