我敢肯定这很微不足道,但我做不对。
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/