我有一个工厂类,它返回从抽象类型继承的具体实例。这些具体实例还具有其数据类型的通用属性,因为每个实例都需要不同的数据类型。Data 属性也存在于抽象类型上,因为它是在工厂中设置的。
public static class FactoryClass 
{
  public static TType CreateNewClass<TType>(object data) 
        where TType : AbstractClass<object>, new()
  {
    var newClass = new TType {Data = data};
    // do some stuff
    // keep track of all created types in a list
    List.Add(newClass);
    return newClass;
  }
  private List<AbstractClass<object>> MyList = new List<AbstractClass<object>>()
}
public abstract class AbstractClass<TData>
{
  internal AbstractClass()
  {
    // do constructor things
  }
  protected SomeCommonFunction()
  {
    // common code for abstract base class
  }
  public abstract void DoSomethingToData();
  TData Data;
}
public class ExampleClass : AbstractClass<string[]>
{
  public override void DoSomethingToData()
  {
    // sort the strings or something
    // call the abstract code
  }
}
当我尝试打电话时,FactoryClass.CreateNewClass<ExampleClass>(myStringArray)我收到一个错误,需要将其转换为AbstractClass<object>
有没有更好的方法来做我想做的事情?