委託
委託是乙個類,它定義了方法的型別,使得方法可以當做另一種方法的引數傳遞,就是方法的引數是乙個委託變數,在呼叫此方法時,就可以把乙個方法作為引數傳遞給委託變數。
1.建立委託訪問修飾符 delegate 返回值型別 委託名(引數列表); 沒有大括號
2.委託賦值 委託名 委託變數 = 方法名; 沒有大小括號這個方法的引數和返回值型別 必須要和委託型別一致。
3.使用委託委託變數(引數列表);靜態方法和普通方法都可以繫結
4.多播委託給委託繫結多個方法(方法型別必須一致) 使用 += 解除使用 -=委託名 委託變數 = 方法1;委託變數 += 方法2;使用多播委託繫結無返回值的方法時,會把繫結的方法都執行一次。使用多播委託繫結有返回值的方法是,也會將方法都執行一次,但是會覆蓋第乙個方法執行的結果,返回最後繫結方法的結果。
5.內建委託action無返回值的委託 表示委託型別的引數型別是 t,t1....func有返回值的委託 表示委託型別的引數型別是 t,t1,t2... 返回值型別是p
6.ref out 關鍵字
這些不能用在內建委託中,必須放在自定義的一般委託中
7.匿名方法
委託型別 委託變數 = delegate(引數列表);
後面一定要加分號,因為這是乙個賦值語句
8.lambda表示式
委託型別 委託變數 = (引數列表)=> ;
後面一定要加分號,因為這是乙個賦值語句
事件在建立委託變數的時候用event修飾 那麼就是乙個事件
委託與事件的區別:
委託可以宣告為類成員 也可以是區域性變數
事件只能是類成員
事件在類的外部訪問時只能出現在 += 註冊 或者 - =登出的左邊 不能像使用委託那樣直接執行
事件必須在所在的類裡面才可以執行
委託和事件
主要過程如下 1.在後台 中,我們可以定義處理程式方法alartrang 2.然後定義委託,引用到處理程式方法的例項。3.最後將委託新增到事件中。從而,引發事件時就會呼叫相關的事件處理方法。若要使用在另乙個類中定義的事件,必須定義和註冊乙個事件處理程式。事件 處理程式必須具有與為事件宣告的委託相同的...
委託和事件
委託的宣告 public delegate void mydelegate string str 注1.委託的定義和方法的定義類似,只是在前面加了乙個delegate,但委託不是方法,它是一種型別。是一種特殊的型別,看成是一種新的物件型別比較好理解。用於對與該委託有相 同簽名的方法呼叫。2.委託相當...
事件和委託
事件是物件傳送的訊息,以發訊號通知操作的發生。操作可能是由使用者互動 例如滑鼠單擊 引起的,也可能是由某些其他的程式邏輯觸發的。引發事件的物件稱為事件傳送方。捕獲事件並對其作出響應的物件叫做事件接收方。在事件通訊中,事件傳送方類不知道哪個物件或方法將接收到 處理 它引發的事件。所需要的是在源和接收方...