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字段!*/
时间: 2024-10-29 19:11:14