系統訪問資料或呼叫方法有兩種操作方式:一種是通過名稱訪問或呼叫,另一種是通過所在的記憶體位址來訪問呼叫。為了系統的安全與穩定
,net framework
的clr
庫不允許程式通過指標來直接操作記憶體中資料或方法,而是通過託管機制
來訪問記憶體中資料或呼叫記憶體中的方法。委託就是
c#提供的一種以託管機制呼叫方法的特殊資料型別
,其作用於房屋租憑中介機構類似。
下面我們主要圍繞以下三點
//1.定義委託
//2.委託的例項化
//3.委託的呼叫,實際上是將委託指向已經實現的某個方法
//注意:呼叫的方法必須返回型別和定義的委託返回型別一致
委託是乙個類,它定義了方法的型別,使得可以將方法當做引數進行傳遞。
一:
委託的定義
在c#
中使用關鍵字
delegate
宣告委託。宣告委託的一般形式是:
//委託的定義
// [訪問修飾符] delegate 資料型別 委託名(引數列表....)
在使用委託前是一定先要定義的
例如:delegate void d(int x)
二:例項化( 與方法繫結)
為了與命名方法一起使用,委託必須用具有可接受簽名的方法進行例項化。
例項化的方法可用下列方法各項之一
例如:
delegate void d(int x)
delegate void d(int x);
class c
public void m2(int i)
}class test
}
三
.委託呼叫
建立委託物件後,通常將委託物件傳遞給將呼叫該委託的其他**。通過委託物件的名稱(後面跟著要傳遞給委託的引數,括在括號內)呼叫委託物件。下面是委託呼叫的示例:
public delegate int mathop(int i,int j);//定義委託
class delegatetest
public static int mutiply(int num1, int num2)
static void main(string args)
}
}
認識:
以前對委託的認識只是知道委託是方法的呼叫。通過這次的專案例項了解到委託也是需要定義,例項化與呼叫的。還是先前學藝不精佔呀。委託的使用通常與匿名函式或lambda表示式匹配使用,下篇介紹匿名函式。
委託的宣告與例項化使用
系統訪問資料或呼叫方法有兩種操作方式 一種是通過名稱訪問或呼叫,另一種是通過所在的記憶體位址來訪問呼叫。為了系統的安全與穩定,net framework的clr庫不允許程式通過指標來直接操作記憶體中資料或方法,而是通過託管機制 來訪問記憶體中資料或呼叫記憶體中的方法。委託就是c 提供的一種以託管機制...
c 委託例項化和呼叫語句
系統訪問資料或呼叫方法有兩種操作方式 一種是通過名稱訪問或呼叫,還有一種是通過所在的記憶體位址來訪問呼叫。為了系統的安全與穩定 net framework 的clr 庫不同意程式通過指標來直接操作記憶體中資料或方法。而是通過託管機制 來訪問記憶體中資料或呼叫記憶體中的方法。託付就是 c 提供的一種以...
委託的建立 例項化和呼叫
通過使用 delegate 類,委託例項可以封裝屬於可呼叫實體的方法。對於例項方法,委託由乙個包含類的例項和該例項上的方法組成。對於靜態方法,可呼叫實體由乙個類和該類上的靜態方法組成。因此,委託可用於呼叫任何物件的函式,而且委託是物件導向的 型別安全的。定義和使用委託有三個步驟 c 可通過使用委託來...