程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#應用this症結字完成串連結構函數挪用辦法

C#應用this症結字完成串連結構函數挪用辦法

編輯:C#入門知識

C#應用this症結字完成串連結構函數挪用辦法。本站提示廣大學習愛好者:(C#應用this症結字完成串連結構函數挪用辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#應用this症結字完成串連結構函數挪用辦法正文


本文實例講述了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#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved