Ala*_*an2 3 .net c# string enums
我有以下代码:
public string GetSetting(string setting)
{
return db2.ExecuteScalar<string>("SELECT VALUE FROM Setting WHERE SettingType = ?", setting);
}
public enum NOA
{
All = 0,
Five = 5,
Seven = 7,
Nine = 9,
Ten = 10
}
public static partial class Extensions
{
public static string Text(this NOA noa)
{
switch (noa)
{
case NOA.Ten: return "10";
case NOA.Five: return "5";
case NOA.Seven: return "7";
case NOA.Nine: return "9";
}
return "";
}
}
Run Code Online (Sandbox Code Playgroud)
我想做的是获取 noa 的值并将其转换为 NOA。
这是我尝试过的。但是我收到一条错误消息,说“字符串不包含值的定义”:
NOA noa = (NOA)App.DB.GetSetting("NumberOfAnswers").Value;
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时。我收到一条错误消息“无法将类型字符串转换为 Japanese.NOA:
NOA noa = (NOA)App.DB.GetSetting("NumberOfAnswers");
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何获得价值并将其放入 noa 吗?
似乎您正在从指定的方法中以字符串形式获取输出。并且您希望将其转换为枚举,这里更好的选择是 TryParse,它可以像下面这样使用:
NOA noa;
bool conversionResult = Enum.TryParse(App.DB.GetSetting("NumberOfAnswers"), out noa);
Run Code Online (Sandbox Code Playgroud)
通过执行这条线,你会得到一个布尔值conversionResult,如果其真正的手段转换成功完成,如果是假的,这意味着转换失败,这时候你会得到的默认值 NOA中noa,让我们从返回的值App.DB.GetSetting("NumberOfAnswers")是"10"那么的价值noa将Ten和conversionResult会true