[英]Passing an enum as argument into a method in C#
我之前问过这个问题,但因为没有足够的解释而将其删除。
还想问一下。。
我有一个这样的枚举:
public enum Call_Status
{
CALL_THIS,
CALL_THAT,
CALL_IT
}
在我的控制器中,我试图使我的代码动态化,因此尝试将 ENUM 作为参数传递给;
调用方式:
bool result = Method1 (Call_Status.CALL_THIS)
领取方式
public bool Method1(Call_Status status)
{
//Processing
//I build a List<string> lstValue;
//Now I'm trying to dynamically determine if this LIST contains my enum value
if(lstValue.Contains(nameof(Permission.status??))) <-- I am unsure how this needs to be coded so I can do exactly this
{
return true;
}
return false;
}
您可以将字符串解析为枚举或以相反的方式使用enum.ToString
。 但第一个问题是:为什么首先不使用List<Call_Status>
? 然后是lstValue.Contains(status)
。
如果这是不可能的,请使用Enum.TryParse
/ Enum.Parse
(如果它是安全的)
public bool Method1(Call_Status status)
{
// ...
return lstValue.Select(s => Enum.Parse<Call_Status>(s)).Contains(status));
}
或相反的方式(更简单更安全,不需要Enum.TryParse
,但也不需要验证):
public bool Method1(Call_Status status)
{
// ...
return lstValue.Contains(status.ToString());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.