程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> .Net罕見成績之C#中的拜托

.Net罕見成績之C#中的拜托

編輯:C#入門知識

.Net罕見成績之C#中的拜托。本站提示廣大學習愛好者:(.Net罕見成績之C#中的拜托)文章只能為提供參考,不一定能成為您想要的結果。以下是.Net罕見成績之C#中的拜托正文


有同伙說拜托和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>
  /// 男屌絲
  /// </summary>
  class DiaoSi
  {
    public string GetBoyTel()
    {
      return "獲得男屌絲的德律風";
    }
  }

最初上測試類

       

static void Main(string[] args)
    {
      var redMun = new MeiPo {Sex = "男"};
      var del= new GetTelphone(new Girl().GetGirlTel);
      if(redMun.Sex=="女")
        del = new GetTelphone(new DiaoSi().GetBoyTel);
      redMun.GetTel(del);

      Console.ReadKey();
    }

履行步調:

1、創立牙婆對象,牙婆引見一個sex="男",

2、創立拜托對象,拜托是一個類,所以用new來實例化。拜托即指辦法的援用,地點初始化時傳入指向的辦法援用new Girl().GetGrilTel

3、假如牙婆引見的是sex="女",那末拜托指向另外一個辦法

4、牙婆對象挪用GetTel獲得接洽方法

以上內容就是對拜托引見的全體內容,願望年夜家愛好。

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