我现在正在读一本Nutshell中的C#4.0这本书,我认为这本书是一本很好的书,即使是高级程序员也可以作为一个很好的参考书.
我回顾了有关基础知识的章节,我发现了一个技巧,告诉我在使用标记枚举时是否在枚举中定义了某个值.
该书指出,使用Enum.IsDefined对标记的枚举不起作用,并建议这样的解决方法:
static bool IsFlagDefined(Enum e)
{
decimal d;
return (!decimal.TryParse(e.ToString(), out d);
}
Run Code Online (Sandbox Code Playgroud)
如果在标记的枚举中定义了某个值,则该值应返回true.
有人可以向我解释为什么这有效吗?
提前致谢 :)