枚举对象的 C# 扩展方法

标签 c#

我正在尝试创建一个扩展方法,但无法让它工作。

所以这有效,在枚举类型示例上创建扩展方法:

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/

相关文章:

C# - 如果我从 .NET 2.0 开始,我会错过什么?

c# - Azure blob 触发值之外的连接

c# - 在 .NET 中捕获包括半透明窗口的屏幕截图

c# - C#中IPv6到IPv4相互转换

c# - 使用 navicat 打开与 SQLite 安全数据库的连接

c# - 主程序的默认构造函数与 vb.net 默认值

c# - ConcurrentDictionary 对象持续多长时间?

c# - 选择中的 Linq 值总和

c# - 使用 model.Filters.Add<TFilterType>() 配置 ASP.NET Core razor 页面过滤器

c# - 将回调传递给类