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#法式設計有所贊助。