我有以下内容:

GenericClass<T> : Class
{
  T Results {get; protected set;}
  public GenericClass<T> (T results, Int32 id) : base (id)
  {
    Results=results;
  }
  public static GenericClass<T> Something (Int32 id)
  {
   return new GenericClass<T> (i need to pass something like new T?, id);
  }
}


Update T可以是类型,也可以是值,因此对于某些类型,可以使用new(),但对于值绝对不是。我想那将意味着需要重新设计类。

想法是如何使用构造函数?例如,是否可以传递类似于新T的内容(尽管不应该传递,因为当时T不知道),或者为避免传递空值又会如何呢?

最佳答案

class GenericClass<T> : Class where T : new()
{
  public T Results {get; protected set;}
  public GenericClass (T results, Int32 id) : base (id)
  {
    Results=results;
  }
  public static GenericClass<T> Something (Int32 id)
  {
   return new GenericClass<T> (new T(), id);
  }
}

关于c# - C#中的通用构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4390526/

10-12 12:20