是否可以再次调用构造函数,如下所示:
public ClassName()
{
Value = 10;
}
public void Reset()
{
// Reset
ClassName();
}
或者这是唯一的方法:
public ClassName()
{
Reset();
}
public void Reset()
{
// Reset
Value = 10;
}
答案 0 :(得分:7)
可以使用Reflection多次调用构造函数,因为构造函数是一种特殊的方法,因此可以将其称为方法。
public void Reset()
{
this.GetType().GetConstructor(Type.EmptyTypes).Invoke(this, new object[] { });
}
HENCE :这不是你应该怎么做。如果你想重置对象到一些默认设置,只需为它做一些帮助,私有方法,也从构造函数调用:
public ClassName()
{
Defaults();
}
public void Reset()
{
Defaults();
}
private void Defaults()
{
Value = 10;
}
答案 1 :(得分:3)
为什么要多次调用构造函数?构造函数用于初始化新对象,因此仅在创建对象时调用。 如果您想重新使用此逻辑,则必须将其放入单独的方法并从构造函数中调用它。否则,您应该创建对象的新实例,并将其分配给同一个变量。
答案 2 :(得分:3)