2011-06-08 88 views
1

可能重复:
Enum type constraints in C#C#泛型:不允许枚举约束,为什么?

可能有人亲切地与为什么enum约束不允许泛型类型一个简单样品和简单话向我解释,即:会如果可能会发生?

+1

枚举是一个值类型,可以应用于值类型的约束并不多。 (只记得'struct'和'new()') – 2011-06-08 22:47:11

+0

你读过这个Q吗? http://stackoverflow.com/questions/79126/create-generic-method-constraining-t-an-enum – 2011-06-08 22:47:29

+0

看看这个:https://msmvps.com/blogs/jon_skeet/archive/2009/ 09/10/generic-constraints-for-enums-and-delegates.aspx – eulerfx 2011-06-08 22:53:04

回答

2

简单地说:因为他们不是。这就是语言是如何设计的(你想简单吧?:))

enum是值类型,所以你可以把一个克制你的泛型类型where T : struct和使用Type.IsEnum在构造函数来检查,抛出如有异常它返回false。

+0

简单而直接,谢谢埃德:-) – Idrees 2011-06-08 22:52:26