加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

第二次在c#中调用构造函数

发布时间:2020-12-15 18:00:45 所属栏目:百科 来源:网络整理
导读:是否可以再次调用构造函数,如下所示: public ClassName(){ Value = 10;}public void Reset(){ // Reset ClassName();} 或者这是唯一的方法: public ClassName(){ Reset();}public void Reset(){ // Reset Value = 10;} 解决方法 可以使用Reflection多次调
是否可以再次调用构造函数,如下所示:
public ClassName()
{
    Value = 10;
}

public void Reset()
{
    // Reset
    ClassName();
}

或者这是唯一的方法:

public ClassName()
{
    Reset();
}

public void Reset()
{
    // Reset
    Value = 10;
}

解决方法

可以使用Reflection多次调用构造函数,因为构造函数是一种特殊方法,因此可以将其称为方法.
public void Reset()
{
    this.GetType().GetConstructor(Type.EmptyTypes).Invoke(this,new object[] { });
}

汉斯:这不是你应该怎么做的.如果你想将对象重置为某些默认设置,只需为它做一些辅助,私有方法,也可以从构造函数调用:

public ClassName()
{
    Defaults();
}

public void Reset()
{
    Defaults();
}

private void Defaults()
{
    Value = 10;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读