Mir ist nicht klar, warum C# bei den Constraints von generischen Typen und Methoden manchmal so pingelig ist, obwohl die CLR die entsprechenden Constraints erlaubt.
Beispiel: folgender Code ist in C# nicht kompilierbar
1: class X {
2: public void MachWas<T>(T foo) where T : Enum {
3: }
4: }
error CS0702: Constraint cannot be special class 'System.Enum'
In C++/CLI kein Problem:
1: ref class X {
2: generic<typename T> where T : System::Enum
3: void MachWas( T foo) {
4: }
5: };