C# 工厂用仿制药什么;其中T:new();方法
更新:我的问题是为什么它在工厂环境中有用 我偶然发现了这篇文章C# 工厂用仿制药什么;其中T:new();方法,c#,generics,C#,Generics,更新:我的问题是为什么它在工厂环境中有用 我偶然发现了这篇文章 公共接口IFactory { T Create(); } 公共类工厂:i工厂,其中T:new() { 公共文件不能创建() { 返回新的T(); } } T:new()的含义是什么?为什么它在工厂上下文中有用 创建某个类实例的语法是什么?是一个约束,这意味着类型参数T必须具有公共无参数构造函数。其中T:new()意味着类型T必须具有无参数公共构造函数 通常,当您想要实例化泛型类型时,您会使用它。T:New()意味着应该作为参数传递
公共接口IFactory
{
T Create();
}
公共类工厂:i工厂,其中T:new()
{
公共文件不能创建()
{
返回新的T();
}
}
T:new()的含义是什么?为什么它在工厂上下文中有用
创建某个类实例的语法是什么?是一个约束,这意味着类型参数T
必须具有公共无参数构造函数。其中T:new()
意味着类型T
必须具有无参数公共构造函数
通常,当您想要实例化泛型类型时,您会使用它。
T:New()
意味着应该作为参数传递给泛型类的类型应该有一个公共默认的无参数构造函数
您应该阅读这些类型的文档。好的,但我的问题是,为什么它在工厂上下文中有用?工厂方法如何知道是否有无参数构造函数?
public interface IFactory<T>
{
T Create();
}
public class Factory<T> : IFactory<T> where T : new()
{
public T Create()
{
return new T();
}
}