首页 > 代码库 > 构造函数初始化语句!!!

构造函数初始化语句!!!

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace nange_1{    class A    {        readonly  int Amyint_1 = 3;        readonly  int Amyint_2 = 4;        public string name;        public int age;        private A()            //私有构造函数执行其他构造       {                       //函数共用的初始化            Amyint_1 = 5;            Amyint_2 = 6;                        Console.WriteLine("调用无参的构造函数{0} {1}", Amyint_1, Amyint_2);        }        public A(string str,int k):this()        { name = str;          age =k;          Console.WriteLine("调用有一个参数的构造函数 name:{0} {1}", name,age);         }            }       class Program    {        static void Main(string[] args)        {            A  objB = new A("江涛",23);                       Console.ReadLine();        }    }}
/*这种语法很有用的另一种情况是,一个类有好几个构造函数,并且他们都需要在对象构造的过程开始时执行一些公共的代码。对于这种情况,可以把公共代码提取出来作为一个构造函数,被其他的所有构造函数作为构造函数初始化语句使用。减少了重复的代码!!你可能会觉得还可以声明一个方法来进行这些公共的初始化,让所有的构造函数调用来调用这个方法,由于种种原因这不是一个好的办法,首先编译器知道方法是一个构造函数后会进行一些优化。其次,有时候一些事情必须在构造函数中执行,在其他一些地方则不行比如readonly字段!*/

 

构造函数初始化语句!!!