假设我有以下课程:
public class Class1<T>
where T : SubClass1, new()
{
public T Item { get; protected set; }
public Class1()
{
Item = new T();
}
}
public class Class2<T> : Class1<T>
where T : SubClass1, new()
{
public Class2()
{
Item = new T();
}
}
public class SubClass1
{
public string Text { get; protected set; }
public SubClass1()
{
Text = "SubClass1";
}
}
public class SubClass2 : SubClass1
{
public SubClass2()
{
Text = "SubClass2";
}
}
现在我想要一个通用方法来创建这些类,所以我这样做:
public T GetInstance<T, K>()
where T : Class1<K>, new()
where K : SubClass1, new()
{
return new T();
}
但如果我称之为该方法,我必须这样做:
GetInstance<Class2<SubClass1>, SubClass1>();
所以我指定两次SubClass1
来调用该方法。我的问题是,有一种更简洁的方法可以做到这一点:
GetInstance<Class2<SubClass1>>();
因此,请避免两次指定SubClass1
?我错过了什么吗?