C#使用this关键字实现串联构造函数调用方法

所属分类: 软件编程 / C#教程 阅读数: 43
收藏 0 赞 0 分享

本文实例讲述了C#使用this关键字实现串联构造函数调用方法。分享给大家供大家参考。具体分析如下:

在一个类中如果需要实现多个自定义构造函数,通常做法是在构造函数中实现各自的业务逻辑,如果这些业务逻辑的实现并非截然不同的话,显然不符合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关键字把传入的参数转发给主构造函数,并且提供必须的其它参数,这样子,我们整个类中需要我们操心的就是那个主构造函数了,其余构造函数基本上可以为空。

注意:如果构造函数链中还有实现各自的逻辑,那么实际上是先执行主构造函数的代码,再执行各自逻辑,使用这种做法,真正的工作都交给了一个构造函数,类定义就会更简洁、更易维护、简化了编程任务。

希望本文所述对大家的C#程序设计有所帮助。

更多精彩内容其他人还在看

winform用datagridview制作课程表实例

这篇文章主要介绍了winform用datagridview制作课程表的方法,实例分析了WinForm实现课程表的结构、数据库及调用技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

C#中winform控制textbox输入只能为数字的方法

这篇文章主要介绍了C#中winform控制textbox输入只能为数字的方法,包括使用keyPress事件限制键盘输入以及TextChanged事件限制粘贴等情况,来实现控制输入为数字的功能,需要的朋友可以参考下
收藏 0 赞 0 分享

C#省份城市下拉框联动简单实现方法

这篇文章主要介绍了C#省份城市下拉框联动简单实现方法,涉及字典的定义与索引的用法,是非常实用的技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

C#处理MySql多个返回集的方法

这篇文章主要介绍了C#处理MySql多个返回集的方法,实现了对处理MySql多个返回集进行封装,是非常实用的技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

C#无限参数的写法

这篇文章主要介绍了C#无限参数的写法,通过循环遍历再结合paras.Add方法实现无限参数的功能,是比较实用的技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

C#反射应用实例

这篇文章主要介绍了C#反射应用,实例分析了通过反射实现多系统数据库的配置方法,是比较实用的技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

C#窗体传值实例汇总

这篇文章主要介绍了C#窗体传值,实例形式汇总了静态变量传值、委托传值、对话框之间的传值等常见应用技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

C#把数组中的某个元素取出来放到第一个位置的实现方法

这篇文章主要介绍了C#把数组中的某个元素取出来放到第一个位置的实现方法,涉及C#针对数组的常见操作技巧,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C#中Equality和Identity浅析

这篇文章主要介绍了C#中Equality和Identity浅析,本文先是讲解了Equality和Identity的定义,同时讲解了判断两个对象等价性的4种方法,需要的朋友可以参考下
收藏 0 赞 0 分享

在Linux上运行C#的方法

这篇文章主要介绍了在Linux上运行C#的方法,实例分析了Linux平台下Mono软件包的应用技巧,以及在此基础之上的C#运行方法,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多