国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

.Net常見問題之C#中的委托

2020-01-24 01:35:20
字體:
來源:轉載
供稿:網友

有朋友說委托和C++中的函數指針很像,但是兩者真的有差別。在C++中,函數指針不是類型安全的,它所指向的是內存中的某一個位置,但是我們沒有辦法判斷這個指針實際指向的是什么,對于參數和返回類型更難以判斷了。但是.NET中的委托則完全不同,它是類型比較安全的類,我們很明白的知道委托定義的返回類型和參數類型。它不僅包含了方法的引用,而且包含了方法的引用。下面通過一段代碼給大家分享下對委托的理解:

什么是委托

  在實際的開發過程中,有時某個方法執行的操作并不是針對數據進行的,而是針對另一個方法,但是這個方法在編譯時又無法得知,只能在運行時才知道。如果是針對數據做操作,只需將數據作為方法的參數傳入即可,那么針對方法做操作,很明顯將方法作為參數傳入即可,聽起來的確很奇怪,但是需要先接受這個現實,然后從使用中去體會它的含義。下面舉一個例子(請原諒我的英語 ,my english is poor!),這樣一個場景:媒婆給菇涼或者小伙介紹對象,如果是對象是男的,菇涼就說出她的聯系方式,如果是女的,小伙就說出他的聯系方式(PS:我們這里都是正常的性取向)。

看一下代碼圖

在命名空間里,定義一個委托,和類是平級的

 

復制代碼 代碼如下:

 public delegate string GetTelphone();
  //用來得到聯系方式的。

概述中提到,委托可以定義返回類型和參數類型,那么這個委托的返回類型就是string,無參的。

繼續。。。。

媒婆類:

/// <summary>/// 媒婆/// </summary>class MeiPo{  public string Sex { get; set; }  public void GetTel(GetTelphone getTelphone)  {    Console.WriteLine(getTelphone.Invoke());  }}

可以看到,GetTel方法的參數是一個委托類型的,和一般的基本類型和常見引用類型引用方式一樣使用。然后再方法體執行委托方法,輸出結果。

菇涼類:

/// <summary>/// 菇涼/// </summary>class Girl{  public string GetGirlTel()  {    return "得到菇涼的電話";  }}

小伙類:

  

 /// <summary>  /// 男

主站蜘蛛池模板:
苍溪县|
新龙县|
铅山县|
镇康县|
灵寿县|
衡阳县|
新蔡县|
休宁县|
凤山县|
崇明县|
库车县|
金坛市|
舞钢市|
吕梁市|
临安市|
商南县|
昭通市|
营山县|
自贡市|
北京市|
黔西县|
漠河县|
延寿县|
芮城县|
会同县|
垣曲县|
沙坪坝区|
永福县|
连山|
右玉县|
鹤山市|
溧阳市|
高平市|
高雄县|
蒙城县|
陆川县|
河间市|
恩平市|
和平区|
舟曲县|
城口县|