将枚举作为参数传递给 C# 中的方法
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());
}
我之前问过这个问题,但由于解释不够而将其删除。
我再问一遍..
我有一个这样的枚举:
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());
}