ぱっと調べて見つからなかったので備忘録。
普通の継承
class Derived : Base
ジェネリック型パラメータの制約
class Derived<T> where T : Type, new()
両方
class Derived<T> : Base where T : Type, new()
構文
class Derived<T> : <ベースクラス名> where T : <制約>
サンプル
using System; using System.Text; namespace GenericsAndDerivedSample { class Base { public void printBase() { Console.WriteLine( "Base.print" ); } } class Type { public void printType() { Console.WriteLine( "Type.print" ); } } class Derived<T> : Base where T : Type, new() { public T Type = new T(); } class Program { static void Main( string[] args ) { Derived<Type> derived = new Derived<Type>(); derived.printBase(); derived.Type.printType(); } } }