"T:new()"对泛型有什么意义?

alt*_*gan 2 c# generics

我想了解那段代码.我认为T必须IContinentFactory's实现类,但我不理解结束new()关键字.

class AnimalWorld<T> : IAnimalWorld where T : IContinentFactory, new()
{
.....
}
Run Code Online (Sandbox Code Playgroud)

eyo*_*ssi 6

T: new() 表示类型T必须具有无参数构造函数.

通过这个你实际上指定你可以写T param = new T();你的实现AnimalWorld<T>


Ham*_*yan 5

new()意味着T必须有默认(无参数)ctor.

类型参数的约束(C#编程指南)