如何从Enum获取字符串值

Kgn*_*web 6 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"

}
Run Code Online (Sandbox Code Playgroud)

错误 - 无法将字符串转换为enum.Status

public class Customer
{
  public string Name { get; set;}
  public string Status {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

如何使用枚举状态设置客户对象的状态属性.

(没有If-Else或切换梯子)

Kam*_*ski 8

你只需要打电话 .ToString

 t.Status = Status.Success.ToString();
Run Code Online (Sandbox Code Playgroud)

来自MSDN的Enum上的ToString()

如果您传递了枚举ID,则可以运行:

t.Status = ((Status)enumId).ToString();
Run Code Online (Sandbox Code Playgroud)

它将整数转换为Enum值然后调用 ToString()

编辑(更好的方式): 您甚至可以将您的方法更改为:

public void CreateStatus(Status status , string userName)
Run Code Online (Sandbox Code Playgroud)

并称之为:

CreateStatus(1,"whatever");
Run Code Online (Sandbox Code Playgroud)

并转换为字符串:

t.Status = status.ToString();
Run Code Online (Sandbox Code Playgroud)