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 ()' –