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

标签 c# enums default-value value-type

我敢肯定这很微不足道,但我做不对。

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
 }

value = default(value.GetType()); 行无法编译,但希望您能看到我正在尝试的内容。我需要将 Enum 参数设置为其自身类型的默认值。

最佳答案

我不太确定你在这里想做什么,但是编译的“默认”行的一个版本是这样的:

 value = (Enum)Enum.GetValues(value.GetType()).GetValue(0);

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

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

只有当您知道枚举的第一个元素的值为零时,第二个版本才能正常工作。

关于c# - 将枚举设置为其默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4096431/

相关文章:

objective-c - 将枚举与多个值进行比较,而不是按位

scala - 具有泛型类型的默认函数参数

reactjs - react 日期选择器中的默认值

java - 根据搜索模式列出亚马逊 S3 文件夹下具有文件名的所有 xml 文件

c# - 从命令行覆盖目标框架

C#/WinForms : ShowDialog and subsequent Show on Form

c# - 在项目之间共享枚举

c# - 使用 ASP.NET MVC Core 将数据从数据库注入(inject)到类中

C# 转换枚举 InvalidCastException 错误

python - 如何在 Python3 中为变量设置默认值?