您的位置:首页 > 编程语言 > C#

天轰穿C# -vs2010 - 04面向对象的编程之构造函数之间的调用【原创】

2012-12-29 14:06 337 查看
小天:有不有什么办法,实现一次就调用多个构造函数的方法?

老田:有的,这就需要构造函数之间的互访了,换句话说,比如上例,我调用无参数的构造函数来实例化一个对象。而这个无参数的再去调用其他的构造函数,其他的再调用。就这样一环扣一环的下去。如下例

public class Product1

{

public int PID;

public string PName;

public decimal Balance;

public Product1()

{

this.PID = 1;

this.PName = "";

this.Balance = 0.0M;

}

public Product1(int fn, string ln)

: this(fn, ln, 0.0M) //使用this关键字访问本类中三个参数的构造函数

{

//本函数的代码

}

public Product1(int fn, string ln, decimal bal)

{

this.PID = fn;

this.PName = ln;

this.Balance = bal;

}

}

小天:哦,原来构造函数之间的访问就是使用this关键字。不过怎么好长时间都不做实例了?老给我这些代码,我都不知道咋练习。

老田:(希望正在看书的朋友你千万别学小天)太懒了。你自己不会尝试建立一个应用程序。我给你做一个,但是别指望我告诉你具体的操作步骤。

我们新建了一个项目,做了一个添加商品并预览添加结果的实例。在添加按钮的事件中写如下代码:

private void button1_Click(object sender, EventArgs e)

{

int fn = Convert.ToInt32(tb_pid.Text);

string ln = tb_pname.Text;

Product1 p1 = new Product1(fn,ln);

//上面赋值完了,下面就开始从对象中取值出来

lbl_pid.Text = p1.PID.ToString();

lbl_pname.Text = p1.PName;

lbl_balance.Text = p1.Balance.ToString();

}

执行后效果如图4-20



图4-20

问题就是上面效果中的那个问题,为什么前面两项的值都是对应的,但是后面价格的值却不不对应呢?如果实在不知道咋回事或者你已经猜到了就打断点,一行行的看下,这个值到底是怎么被贪污掉的。

本文章为天轰穿原创文章,转载请注明出处及作者。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐