最終更新: bokkuri_orz 2015年06月14日(日) 01:33:51履歴
where句を使うと、型パラメータに制約をかけられる。
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>(); }
enumは値型に含まれるので、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; }
最新コメント