【发布时间】:2016-07-19 22:48:20
【问题描述】:
我的程序如下:
using System;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
char _status = 'C';
Console.WriteLine(_status.ToString());
if (Enum.IsDefined(typeof(MyStatus), _status.ToString()))
{
Console.WriteLine("Yes1");
}
else
{
Console.WriteLine("No1");
}
MyStatus myStatus;
if(Enum.TryParse(_status.ToString(), true, out myStatus))
{
Console.WriteLine("Yes2");
}
else
{
Console.WriteLine("No2");
}
}
public enum MyStatus
{
None = 'N',
Done = 'C'
//Other Enums
}
}
}
我期待控制台中出现“Yes1”和“Yes2”,但看起来它为 TryParse 和 IsDefined 返回 false。任何帮助表示赞赏。
代码可以在http://rextester.com/CSFG46040访问
更新
这个值基本上来自一个数据库并被映射到一个字符字段。我还需要让它暴露给已经使用这个字符字段作为枚举的程序。 Enum.IsDefined 或 Enum.TryParse 只是为了确保我没有得到任何其他会被解析为 None 的垃圾字符。
【问题讨论】: