我需要为Enum
值分配一个字符串。我的场景和代码在下面
访问网络服务方法时说addWhere(int i ,int j,Comparison)
比较的类型为Enum。
从UI获取值并将其保存在字符串中
string strComparison= "AND"; or
string strComparison= "OR"
我需要将这些值设置为ENUM
。我尝试了下面的代码
addWhere(2 ,3,Enum.Parse(typeof(Comparison),strComparison))
但没有奏效。解决这个或任何替代方法的方法是什么?
由于
答案 0 :(得分:2)
看起来你错过了返回演员,即
(Comparison)Enum.Parse(typeof(Comparison), strComparison);
Enum.Parse返回object
,因为您的addWhere
方法需要Comparison
类型值。
答案 1 :(得分:0)
您必须将Enum.Parse
的结果转换为正确的类型:
addWhere(2, 3, (Comparison)Enum.Parse(typeof(Comparison), strComparison));
答案 2 :(得分:0)
您可以执行以下操作:
Comparison comparison;
if(Comparison.TryParse(strComparison, out comparison))
{
// Work with the converted Comparison
}
答案 3 :(得分:0)
正如之前的帖子中所述,您可能缺少类型转换。
enum Comparision
{
AND,
OR
}
class Program
{
static void Main(string[] args)
{
Comparision cmp = (Comparision)Enum.Parse(typeof (Comparision), "And", true);
Console.WriteLine(cmp == Comparision.OR );
Console.WriteLine(cmp == Comparision.AND);
}
}