.net - 枚举扩展方法

标签 .net enums extension-methods enumeration

在vs2008中,是否可以编写适用于任何枚举的扩展方法。

我知道您可以针对特定枚举编写扩展方法,但我希望能够使用单个扩展方法对每个枚举进行处理。这可能吗?

最佳答案

是的,只需针对基本 Enum 类型进行编码,例如

public static void Something(this Enum e)
{
    // code here
}

缺点是您可能最终会做一些非常讨厌的事情,例如使用 Enum.GetUnderlyingType 查找真正的基类型,转换,并根据枚举的基本类型向下进入不同的分支,但是您可以找到它的一些很好的用途(例如,我们有 IsOneOfIsCombinationOf 方法适用于所有枚举)。

PS:请记住,在编写方法时,尽管不建议,您可以使用 floatdouble 作为枚举的基本类型,因此您需要一些特殊情况对于这些值以及无符号值。

关于.net - 枚举扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/276585/

相关文章:

.net - WCF:接口(interface)、泛型和 ServiceKnownType

c# - 如何设置 Visual-Studio .NET CompactFramework Windows-CE 默认窗口大小

java - 如何评估包含枚举值的json字符串?

java - 安卓 Java : is this a good way instead enums?

c# - 关于扩展方法的一些理解

c# - 扩展 "WhenNull"检查 null 并通过 lambda 初始化底层对象

c# - 使用 LibTiff.Net 重复目录更新现有图像中的标签

c# - 使用 LINQ to XML,枚举将数据从 XML 提取到 C# 对象

c# - 有没有办法从扩展方法中获取通用类型?

c# - "Invalid query"无明确原因的异常