微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 将枚举设置为其默认值

我相信这是相当微不足道的,但我无法做到.
public static string DoSomething(this Enum value)
 {
     if (!Enum.IsDefined(value.GetType(),value))
     {
         // not a valid value,assume default value
         value = default(value.GetType()); 
     }

     // ... do some other stuff
 }

line value = default(value.GetType());不编译,但希望你能看到我在尝试什么.我需要将Enum param设置为它自己类型的认值.

解决方法

我不太确定你在这里要做什么,但是编译的’default’行的版本是这样的:
value = (Enum)Enum.GetValues(value.GetType()).GetValue(0);

或者,甚至更干净(来自Paw,在评论中,谢谢):

value = (Enum) Enum.ToObject(value.GetType(),0);

如果你知道枚举的第一个元素的值为零,那么第二个版本只能正常工作.

原文地址:https://www.jb51.cc/csharp/99903.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐