我正在尝试创建一个扩展方法,但无法让它工作。
所以这有效,在枚举类型示例上创建扩展方法:
public enum Pets
{
....
}
上面的 Pets 可以扩展创建一个扩展方法,如:
public static void Myex(this Pets pet)
{
...
}
但是当我尝试扩展 Enum 本身时,示例如下:
Public static void something(this Enum en)
{
...
}
并尝试像下面这样使用它
Enum.something();
这行不通。
我试图创建类似的方法,如 Enum.Parse、Enum.IsDefined(已由 C# 公开)。
最佳答案
这与 Enum
本身无关 - 但扩展方法“看起来”就像它们是 实例 方法。您不能“假装”添加静态方法,因为您目前正在尝试这样做。
你可以这样做:
Pets.SomeValue.something()
... 因为那是在“实例”(一个值)上调用扩展方法。请注意,它最终会限制值(value)。
关于枚举对象的 C# 扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34297495/