我们说我有以下课程:
public class SomeClass<TSource>
{
private Model _model;
// ...
public void SomeMethod()
{
// ...
TSource instance = Activator.CreateInstance(typeof(TSource), _model);
// ...
}
}
然后我有这个课程:
public class OtherClass
{
public OtherClass(Model model)
{
// ...
}
}
如果我执行以下操作,一切都很好:
SomeClass<OtherClass> someClass = // ....
someClass.SomeMethod();
但是,如果OtherClass
有一个无参数构造函数,或者任何不同于所述的构造函数,该怎么办?
一切都会很好地编译,但是在创建实例时会引发运行时异常。
有没有办法在每个类上强制使用某个构造函数,这些类将用作SomeClass<>
的泛型参数? (像通用约束一样)