c#委託實例化和調用語句

系統訪問數據或調用方法有兩種操做方式:一種是經過名稱訪問或調用,還有一種是經過所在的內存地址來訪問調用。爲了系統的安全與穩定,NET FrameworkCLR庫不一樣意程序經過指針來直接操做內存中數據或方法。而是經過託管機制來訪問內存中數據或調用內存中的方法。託付就是C#提供的一種以託管機制調用方法的特殊數據類型,其做用於房屋租憑中介機構相似。
 
如下咱們主要環繞如下三點
 
    //1.定義託付  
    //2.託付的實例化 
    //3.託付的調用。其實是將託付指向已經實現的某個方法 
 
    //注意:調用的方法必須返回類型和定義的託付返回類型一致 

 
 
 託付是一個類,它定義了方法的類型,使得可以將方法當作參數進行傳遞。
 
一:託付的定義
 
C#中使用keyworddelegate聲明託付。聲明託付的通常形式是:
 
//託付的定義  
    // [訪問修飾符]  delegate  數據類型  託付名(參數列表....) 
 
在使用託付前是必定先要定義的

好比:Delegate void d(int x)

 
二:實例化( 與方法綁定) 

爲了與命名方法一塊兒使用,託付必須用具備可接受簽名的方法進行實例化。
 
實例化的方法可用下列方法各項之中的一個
 
  • 「託付建立表達式」中引用的靜態方法,或者
  • 「託付建立表達式」中引用的目標對象(此對象不能爲 null)和實例方法
  •  還有一個託付
 
好比:
 
Delegate void d(int x)
 
 
delegate void D(int x);
class C
{
   public static void M1(int i) {...}
   public void M2(int i) {...}
}
class Test
{
   static void Main() {
      D cd1 = new D(C.M1);      // static method
      Test t = new C();
      D cd2 = new D(t.M2);      // instance method
      D cd3 = new D(cd2);      // another delegate
   }
}


 
.託付調用

 
建立託付對象後,一般將託付對象傳遞給將調用該託付的其它代碼。經過託付對象的名稱(後面跟着要傳遞給託付的參數,括在括號內)調用託付對象。如下是託付調用的演示樣例:
 
public delegate int MathOp(int i,int j);//定義託付 
    class DelegateTest 
    { 
        public static int  add(int i, int j) {//方法 
            return i + j; 
        } 
        public static int Mutiply(int num1, int num2) {//方法 
 
            return num1 * num2; 
         
        } 
 
 
        static void Main(string[] args) 
        { 
            MathOp mo = new MathOp(add);//託付的實例化,指向add方法 
            MathOp maOp = new MathOp(Mutiply);//託付的實例化,指向Mutiply方法 
 
            Console.WriteLine(mo(10, 20));//託付的調用 
            Console.WriteLine(maOp(4, 5));//託付的調用 
 
            Console.ReadLine(); 
        } 
    } 
 
  
} 


認識:

曾經對託付的認識僅僅是知道託付是方法的調用。經過此次的項目實例瞭解到託付也是需要定義,實例化與調用的。

仍是先前學藝不精佔呀。安全

託付的使用一般與匿名函數或lambda表達式匹配使用,下篇介紹匿名函數
 函數

版權聲明:本文博主原創文章,博客,未經贊成不得轉載。spa

相關文章
相關標籤/搜索