そのコードを理解したい。Tクラスを実装する必要があると思いますが、キーワードIContinentFactory'sの終わりがわかりません。new()
class AnimalWorld<T> : IAnimalWorld where T : IContinentFactory, new()
{
.....
}
T: new()タイプTにはパラメーターのないコンストラクターが必要であることを意味します。
それによって、あなたは実際にあなたがT param = new T();あなたの実装で書くことができることを指定しますAnimalWorld<T>
new()Tこれは、デフォルト(パラメーターなし)のコンストラクターが必要であることを意味します。
制約new()は、型Tにパブリックパラメーターのないインスタンスコンストラクターが必要であることを意味します。これにはすべての値型が含まれますが、すべてのクラスが含まれるわけではありません。このようなコンストラクターを持つことができるインターフェースまたはデリゲート型はありません。new()制約が存在する場合T、抽象クラスになることはできません。
が存在する場合new()、次のコードがクラス内で許可されます。
T instance = new T();
class AnimalWorld<T> : IAnimalWorld where T : IContinentFactory, new()
宣言の意味は次のとおりです。
AnimalWorldclassジェネリック型パラメータを持つTAnimalWorldは実装する必要がありますIAnimalWorldTは実装する必要がありますIContinentFactoryT引数のないコンストラクターが必要です (これnewが の目的です)。