class MyClass1<T> where T : class // TはクラスならなんでもOK { } class MyClass2{} class MyClass3<T> where T : MyClass2 // TはMyClass2、またはその派生クラス { }
class MyClass1{} class MyClass2{} class MyClass1<T, U> where T : MyClass1 where U : MyClass2 { }
class MyClass<T> where T : struct // Tは値型 { private T m_param; } { MyClass<int> myClass = new MyClass<int>(); }
class MyClass<T> where T : struct // Tは値型 { private T m_param; } enum MyEnum { INDEX0 = 0, INDEX1, INDEX2 } { MyClass<MyEnum> myClass = new MyClass<MyEnum>(); myClass.m_param = MyEnum.INDEX0; }