是否可以再次调用构造函数,如下所示:
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; }
原文地址:https://www.jb51.cc/csharp/97247.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。