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();
        }
  }