博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

小天:有不有什么办法,实现一次就调用多个构造函数的方法?

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

    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

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

本文章为天轰穿原创文章,转载请注明出处及作者。