最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

示例代碼如下:

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

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

        //下面前三個構(gòu)造函數(shù)都是去調(diào)用參數(shù)最多的第四個構(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();           
}

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

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

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

相關(guān)文章

  • 在C#中List集合使用First()方法獲取第一個元素的操作

    在C#中List集合使用First()方法獲取第一個元素的操作

    這篇文章主要介紹了在C#中List集合使用First()方法獲取第一個元素的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 為何Linq的Distinct實在是不給力

    為何Linq的Distinct實在是不給力

    本篇文章對Linq的Distinct進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#控件picturebox實現(xiàn)畫圖功能

    C#控件picturebox實現(xiàn)畫圖功能

    這篇文章主要為大家詳細(xì)介紹了C#控件picturebox實現(xiàn)畫圖功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • c# 網(wǎng)址壓縮簡單實現(xiàn)短網(wǎng)址

    c# 網(wǎng)址壓縮簡單實現(xiàn)短網(wǎng)址

    短網(wǎng)址,忽然一下子就冒出來的東西,長長的一個URL,提交過去,出來就只有短短的一個URL了,看起來似乎挺神奇,其實簡單分析一下,明白其中的原理,也是一件很簡單的事情,需要的朋友可以了解下
    2012-12-12
  • C#使用iCSharpcode進(jìn)行文件壓縮實現(xiàn)方法

    C#使用iCSharpcode進(jìn)行文件壓縮實現(xiàn)方法

    這篇文章主要介紹了C#使用iCSharpcode進(jìn)行文件壓縮實現(xiàn)方法,末尾附有完整實例,有助于大家參考借鑒,需要的朋友可以參考下
    2014-08-08
  • 如何用C#創(chuàng)建用戶自定義異常淺析

    如何用C#創(chuàng)建用戶自定義異常淺析

    雖然在 C# 語言中已經(jīng)提供了很多異常處理類,但在實際編程中還是會遇到未涉及的一些異常處理,這篇文章主要給大家介紹了關(guān)于如何用C#創(chuàng)建用戶自定義異常的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • C#測量程序運(yùn)行時間及cpu使用時間實例方法

    C#測量程序運(yùn)行時間及cpu使用時間實例方法

    對一個服務(wù)器程序想統(tǒng)計每秒可以處理多少數(shù)據(jù)包,要如何做?答案是用處理數(shù)據(jù)包的總數(shù),除以累記處理數(shù)據(jù)包用的時間,下面我們看一個代碼實例就明白了
    2013-11-11
  • c#異常處理示例分享

    c#異常處理示例分享

    這篇文章主要介紹了c#異常處理示例,需要的朋友可以參考下
    2014-04-04
  • [C#].NET中幾種Timer的使用實例

    [C#].NET中幾種Timer的使用實例

    本篇文章主要介紹了.NET中幾種Timer的使用,具有一定的參考價值,有興趣的可以了解一下。
    2016-12-12
  • C#實現(xiàn)程序開機(jī)啟動的方法

    C#實現(xiàn)程序開機(jī)啟動的方法

    這篇文章主要介紹了C#實現(xiàn)程序開機(jī)啟動的方法,涉及C#針對應(yīng)用程序及注冊表的相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06

最新評論

新乡市| 特克斯县| 宁陕县| 和静县| 太白县| 乌海市| 乾安县| 清水县| 阿拉善盟| 陇川县| 北流市| 大厂| 改则县| 云南省| 临洮县| 黔南| 潞城市| 新干县| 贺兰县| 冷水江市| 兴安县| 西吉县| 通化县| 紫云| 新化县| 天门市| 临海市| 锦屏县| 湖州市| 荃湾区| 乐山市| 通辽市| 大余县| 舒城县| 高平市| 三穗县| 佳木斯市| 武夷山市| 常宁市| 平乡县| 大足县|