如何从Enum获取字符串值

时间:2017-02-15 06:58:10

标签: c# asp.net enums

我对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或切换梯子)

2 个答案:

答案 0 :(得分:5)

您只需致电.ToString

 t.Status = Status.Success.ToString();

ToString() on Enum from MSDN

如果您传递了枚举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();

}