C# 从其他类实例化泛型类型

C# 从其他类实例化泛型类型,c#,generics,C#,Generics,我有两个类,Hierarchy和Folder,我用它们来建模服务器中文件夹的树结构。我使用了泛型类型,因为我想让它更通用一些。然而,我遇到了一个问题 我尝试递归地导航树以添加一个新的通用T元素,并使用以下函数: public T AddItem (string Path, int ID) { T Result = default(T); if (this.Path == Path) { Result = new T (); Items.Add (ID, Re

我有两个类,
Hierarchy
Folder
,我用它们来建模服务器中文件夹的树结构。我使用了泛型类型,因为我想让它更通用一些。然而,我遇到了一个问题

我尝试递归地导航树以添加一个新的通用T元素,并使用以下函数:

public T AddItem (string Path, int ID)
  {
  T Result = default(T);

  if (this.Path == Path)
    {
    Result = new T ();
    Items.Add (ID, Result);
    }

  return Result;
  }
但是
newt()
不起作用,这并不奇怪。错误是:

无法创建变量类型“T”的实例,因为它没有new()约束

我试图在基础文件(层次结构)中添加一个新的()约束,但在这种情况下它不起作用,我不确定现在可以做什么。有什么方法可以实例化这个通用对象吗

编辑 将约束添加到方法也不起作用

错误:
非泛型声明不允许使用约束

如下声明类。这将强制
T
拥有一个无参数的公共构造函数,然后您将能够编写
newt()

classmyclass,其中T:new()
{
公共T附加项(字符串路径,整数ID)
{
//你的代码
}
}

无法向方法添加
约束,因为它没有泛型声明。在这种情况下,约束需要位于父类上。
class MyClass<T> where T : new() 
{
    public T AddItem(string Path, int ID)
    {
       // your code
    }
}