我对Enum很困惑。这是我的枚举
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"
}
错误 - 无法将字符串转换为enum.Status
public class Customer
{
public string Name { get; set;}
public string Status {get; set;}
}
如何使用枚举状态设置客户对象的状态属性。?
(No If-Else或切换梯子)
答案 0 :(得分:5)
您只需致电.ToString
t.Status = Status.Success.ToString();
如果您传递了枚举ID,则可以运行:
t.Status = ((Status)enumId).ToString();
它将整数转换为Enum值,然后调用ToString()
编辑(更好的方法): 您甚至可以将方法更改为:
public void CreateStatus(Status status , string userName)
并称之为:
CreateStatus(1,"whatever");
并转换为字符串:
t.Status = status.ToString();
答案 1 :(得分:1)
很容易使用ToString()方法获取枚举的字符串值。
enum Status
{
Success = 1,
Error = 0
}
string foo = Status.Success.ToString();
更新
如果您在方法的输入中包含Enum的类型,则更容易,如下所示:
public void CreateStatus(Status enums, string userName)
{
Customer t = new Customer();
t.Name = userName;
t.Status = enums.Success.ToString();
}