【发布时间】:2010-11-19 10:22:53
【问题描述】:
我有以下通用函数:
public SomeType SomeFunction<T>(T value)
{
}
我现在想将此通用函数限制为仅与 Enums 一起使用,因此我尝试了以下方法:
public SomeType SomeFunction<T>(T value) where T : System.Enum
{
}
但这导致:
错误 CS0702:约束不能 特殊类'System.Enum'
是否有解决方法,出于好奇,有人知道为什么不允许这种类型的约束吗?
【问题讨论】:
-
您应该看看 Ani 提到的欺骗中接受的答案。这是 C# 语言的限制,而不是 CLR(例如,可以在 F# 中限制为
enum)。 Unconstrained Melody 库提供了一种解决方法,允许在 C# 本身中使用enum约束:code.google.com/p/unconstrained-melody
标签: c#