2011-06-08 87 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