今天在调试程序的时候犯了一个弱智的错误!来,看代码:
客户端调用:
结果和预期的不一样。想想恍然大悟,构造函数里调用构造函数,其实是构造了2个对象,第一个对象返回前端,当然无初始值,第二个临时的一个对象,有初始值。汗!
解决方案很简单:
其实构造函数互相调用可以通过this重载
public class test
{
public int a = 0;
public int b = 0;
public test()
{
}
public test(int _a)
: this(_a, 0)
{
//new test(_a,0);
}
public test(int _a,int _b)
{
this.a = _a;
this.b = _b;
}
}
本文通过一个具体的C#编程案例,展示了如何正确地使用构造函数重载解决对象初始化时的常见错误。通过对比错误和正确的代码实现,揭示了构造函数递归调用导致的问题,并给出了简洁明了的解决方案。

被折叠的 条评论
为什么被折叠?



