Enum对象的C#extend方法

Ido*_*day 2 c#

我正在尝试创建一个扩展方法,但无法使其工作.

所以这工作,在一个枚举类型的例子上创建扩展方法:

public enum Pets
{
    ....
}
Run Code Online (Sandbox Code Playgroud)

以上宠物可以扩展创建一个扩展方法,如:

public static void Myex(this Pets pet)
{
    ... 
} 
Run Code Online (Sandbox Code Playgroud)

但是当我尝试扩展Enum本身的例子如下:

Public static void something(this Enum en)
{
    ... 
} 
Run Code Online (Sandbox Code Playgroud)

并试着像下面这样使用它

Enum.something(); 
Run Code Online (Sandbox Code Playgroud)

这不起作用.

我试图创建类似Enum.Parse,Enum.IsDefined(已经由c#公开)的类似方法.

Jon*_*eet 10

这与此无关Enum- 但扩展方法"看起来"就像它们是实例方法一样.你不能"假装"添加静态方法,因为它看起来像你正在尝试做的.

你可以这样做:

Pets.SomeValue.something()
Run Code Online (Sandbox Code Playgroud)

...因为那是在"实例"(值)上调用扩展方法.请注意,它最终会打击价值.