欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用this關(guān)鍵字實(shí)現(xiàn)串聯(lián)構(gòu)造函數(shù)調(diào)用方法

 更新時(shí)間:2015年01月28日 10:24:06   投稿:shichen2014  
這篇文章主要介紹了C#使用this關(guān)鍵字實(shí)現(xiàn)串聯(lián)構(gòu)造函數(shù)調(diào)用方法,實(shí)例分析了使用this關(guān)鍵字串聯(lián)構(gòu)造函數(shù)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了C#使用this關(guān)鍵字實(shí)現(xiàn)串聯(lián)構(gòu)造函數(shù)調(diào)用方法。分享給大家供大家參考。具體分析如下:

在一個(gè)類中如果需要實(shí)現(xiàn)多個(gè)自定義構(gòu)造函數(shù),通常做法是在構(gòu)造函數(shù)中實(shí)現(xiàn)各自的業(yè)務(wù)邏輯,如果這些業(yè)務(wù)邏輯的實(shí)現(xiàn)并非截然不同的話,顯然不符合oop編程思想,極不利于維護(hù),當(dāng)然,我們也可以通過將相同的邏輯部分封裝成一個(gè)方法,但還有一種更為合理簡單的方法,下面就通過this關(guān)鍵字來實(shí)現(xiàn)串聯(lián)構(gòu)造函數(shù)做一簡單示例。

示例代碼如下:

復(fù)制代碼 代碼如下:

public class Person
{       
        public string personName;
        //定義年齡為可空類型,這樣就可以賦予其null值
        public int? personAge;

        //下面前三個(gè)構(gòu)造函數(shù)都是去調(diào)用參數(shù)最多的第四個(gè)構(gòu)造函數(shù),只取它們所需要的部分參數(shù)即可
        //這樣的做法就是this串聯(lián)構(gòu)造函數(shù)
        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);
        }       
}

主函數(shù)調(diào)用如下:

復(fù)制代碼 代碼如下:

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();           
}

這樣的做法就是讓一個(gè)接受參數(shù)最多的構(gòu)造函數(shù)做"主構(gòu)造函數(shù)", 且在主構(gòu)造函數(shù)中實(shí)現(xiàn)必須的業(yè)務(wù)邏輯,其余的構(gòu)造函數(shù)只要使用this關(guān)鍵字把傳入的參數(shù)轉(zhuǎn)發(fā)給主構(gòu)造函數(shù),并且提供必須的其它參數(shù),這樣子,我們整個(gè)類中需要我們操心的就是那個(gè)主構(gòu)造函數(shù)了,其余構(gòu)造函數(shù)基本上可以為空。

注意:如果構(gòu)造函數(shù)鏈中還有實(shí)現(xiàn)各自的邏輯,那么實(shí)際上是先執(zhí)行主構(gòu)造函數(shù)的代碼,再執(zhí)行各自邏輯,使用這種做法,真正的工作都交給了一個(gè)構(gòu)造函數(shù),類定義就會(huì)更簡潔、更易維護(hù)、簡化了編程任務(wù)。

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C#基于QRCode實(shí)現(xiàn)動(dòng)態(tài)生成自定義二維碼圖片功能示例

    C#基于QRCode實(shí)現(xiàn)動(dòng)態(tài)生成自定義二維碼圖片功能示例

    這篇文章主要介紹了C#基于QRCode實(shí)現(xiàn)動(dòng)態(tài)生成自定義二維碼圖片功能,結(jié)合實(shí)例形式分析了C#使用QRCode動(dòng)態(tài)生成二維碼圖片相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • C#創(chuàng)建自定義控件的示例

    C#創(chuàng)建自定義控件的示例

    這篇文章主要介紹了C#創(chuàng)建自定義控件的示例,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2020-10-10
  • C#中Shear的用法實(shí)例

    C#中Shear的用法實(shí)例

    這篇文章主要介紹了C#中Shear的用法,實(shí)例分析了C#中使用Matrix實(shí)現(xiàn)Shear剪切變換的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • C#二維數(shù)組與多維數(shù)組的具體使用

    C#二維數(shù)組與多維數(shù)組的具體使用

    本文主要介紹了C#二維數(shù)組與多維數(shù)組的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • C#中String.PadRight方法的具體使用

    C#中String.PadRight方法的具體使用

    本文主要介紹了C#中String.PadRight方法的具體使用, 返回一個(gè)指定長度的新字符串,其中在當(dāng)前字符串的結(jié)尾填充空格或指定的Unicode字符,下面就來詳細(xì)的了解一下
    2024-01-01
  • Unity實(shí)現(xiàn)通用的信息提示框

    Unity實(shí)現(xiàn)通用的信息提示框

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)通用的信息提示框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C#在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建類型的實(shí)現(xiàn)方法

    C#在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建類型的實(shí)現(xiàn)方法

    這篇文章主要介紹了C#在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建類型的實(shí)現(xiàn)方法,主要通過動(dòng)態(tài)生成C#代碼再編譯成程序集來實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建類型的,需要的朋友可以參考下
    2014-09-09
  • C#實(shí)現(xiàn)的SN快速輸入工具實(shí)例

    C#實(shí)現(xiàn)的SN快速輸入工具實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)的SN快速輸入工具,以實(shí)例的形式詳細(xì)講述了C#實(shí)現(xiàn)序列號(hào)快速輸入的方法,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-11-11
  • C#自定義WPF中Slider的Autotooltip模板

    C#自定義WPF中Slider的Autotooltip模板

    這篇文章介紹了C#自定義WPF中Slider的Autotooltip模板的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#?將數(shù)據(jù)庫SqlServer數(shù)據(jù)綁定到類中的過程詳解

    C#?將數(shù)據(jù)庫SqlServer數(shù)據(jù)綁定到類中的過程詳解

    本文講述的是讀取數(shù)據(jù)庫中數(shù)據(jù)的常用做法,即將數(shù)據(jù)庫中的數(shù)據(jù)綁定到創(chuàng)建的類中,再將類綁定到DataGridView的數(shù)據(jù)源中的做法,對(duì)C#將SqlServer數(shù)據(jù)綁定到類中感興趣的朋友一起看看吧
    2022-06-06

最新評(píng)論