在vs2008中,是否可以编写适用于任何枚举的扩展方法。
我知道您可以针对特定枚举编写扩展方法,但我希望能够使用单个扩展方法对每个枚举进行处理。这可能吗?
最佳答案
是的,只需针对基本 Enum
类型进行编码,例如
public static void Something(this Enum e)
{
// code here
}
缺点是您可能最终会做一些非常讨厌的事情,例如使用 Enum.GetUnderlyingType
查找真正的基类型,转换,并根据枚举的基本类型向下进入不同的分支,但是您可以找到它的一些很好的用途(例如,我们有 IsOneOf
和 IsCombinationOf
方法适用于所有枚举)。
PS:请记住,在编写方法时,尽管不建议,您可以使用 float
和 double
作为枚举的基本类型,因此您需要一些特殊情况对于这些值以及无符号值。
关于.net - 枚举扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/276585/