这是不合法的: public class MyBaseClass
{
public MyBaseClass() {}
public MyBaseClass(object arg) {}
}
public void ThisIsANoNo<T>() where T : MyBaseClass
{
T foo = new T("whoops!");
}
我有一个通用函数,它将接口作为类型获取,现在在一种情况下,我必须根据接口创建一个新类。我一直在想它,解决这个问题的一种方法是使用IoC,但我希望会有另一种方式,因为IoC看起来有点像矫枉过正。下面 是使用访问者模式的尝试: public class RepositoryManager<T> : IRepositoryManager<T> where T : class, new()
{
Ryan Delucchi问评论#3 here到Tom Hawtin的回答是: 为什么Class.newInstance() “恶”? 这个响应代码示例: // Avoid Class.newInstance, for it is evil.
Constructor<? extends Runnable> ctor = runClass.getConstructor();
Runnable d