上海建企业网站,杭州门户网站有哪些,淘宝上开做网站的店铺,南京个人做网站在一个类中如果需要实现多个自定义构造函数,通常做法是在构造函数中实现各自的业务逻辑,如果这些业务逻辑的实现并非截然不同的话,显然不符合oop编程思想,极不利于维护,当然,我们也可以通过将相同的逻辑部分封装成一个方法,但还有一种更为合理简单的方法#xff0c;下面就通过…在一个类中如果需要实现多个自定义构造函数,通常做法是在构造函数中实现各自的业务逻辑,如果这些业务逻辑的实现并非截然不同的话,显然不符合oop编程思想,极不利于维护,当然,我们也可以通过将相同的逻辑部分封装成一个方法,但还有一种更为合理简单的方法下面就通过this关键字来实现串联构造函数做一简单示例. 示例代码如下: public class Person { public string personName; //定义年龄为可空类型,这样就可以赋予其null值 public int? personAge; //下面前三个构造函数都是去调用参数最多的第四个构造函数,只取它们所需要的部分参数即可 //这样的做法就是this串联构造函数 public Person():this(,0) { } public Person(string name):this(evan,null) { } public Person(int age):this(,20) { } public Person(string name, int? age) { this.personName name; //通过 ?? 判断传入的age是否null值 //如果属于null值,则赋值100 this.personAge age ?? 100; } public void Display() { Console.WriteLine(Name:{0},Age:{1}\n, personName, personAge); } }主函数调用如下: static void Main(string[] args) { Person per1 new Person(); per1.Display(); Person per2 new Person(20); per2.Display(); Person per3 new Person(evan); per3.Display(); Person per4 new Person(evan, 20); per4.Display(); Console.ReadLine(); } 这样的做法就是让一个接受参数最多的构造函数做主构造函数, 且在主构造函数中实现必须的业务逻辑,其余的构造函数只要使用this关键字把传入的参数转发给主构造函数,并且提供必须的其它参数这样子,我们整个类中需要我们操心的就是那个主构造函数了,其余构造函数基本上可以为空注意:如果构造函数链中还有实现各自的逻辑,那么实际上是先执行主构造函数的代码,再执行各自逻辑使用这种做法,真正的工作都交给了一个构造函数,类定义就会更简洁、更易维护、简化了编程任务。 转载于:https://www.cnblogs.com/py891021/archive/2009/09/15/1566859.html