请考虑以下代码:
class Program
{
static void Main(string[] args)
{
var instance = Activator.CreateInstance<Person>();//No parameterless constructor defined for this object.
}
}
public class Person
{
public Person(string name = "Shahrooz") { }
}
当我使用这段代码:Activator.CreateInstance<Person>();
时,出现了以下错误:
没有为此对象定义无参数的构造函数。
需要注意的是,我的构造函数有默认参数:string name = "Shahrooz"
尽管构造函数有默认值参数,为什么我们不能创建具有构造函数的类的实例呢?
Create<T>
的通用版本需要一个无参构造函数,这与所有参数都默认为某些值的构造函数不同。 - Sergey Kalinichenko