我和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或切换梯子)
你只需要打电话 .ToString
t.Status = Status.Success.ToString();
Run Code Online (Sandbox Code Playgroud)
如果您传递了枚举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)