3
我想要做这样的事情:枚举扩展方法来获取所有值
enum MyEnum { None, One, Two };
var myEnumValues = MyEnum.Values();
我的扩展方法:
public static IEnumerable<T> Values<T>(this Enum enumeration)
where T : struct
=> Enum.GetValues(typeof(T)).Cast<T>();
但它看起来是这样的:
MyEnum.None.Values<MyEnum>();
如何去做吧?
你可以通过使用'this object value'去除* one *的一部分,然后删除'',然后在该值上使用'.GetType()'等,但是不能删除'None'在'MyEnum.None'中。这只是扩展方法的限制。 –
您也可以使用'this T enumeration'来取消指定通用类型的需要。 – DavidG
你可能会更好,只是适当地命名类和方法,所以你会得到像'EnumValues.Of ()' –