委托是一個類,它定義了方法的類型,使得可以將方法當作另一個方法的參數來進行傳遞。
一、IF條件判斷語句
二、DELEGATE委托語句
委托參考示例:https://www.cnblogs.com/mq0036/p/9166893.html
1.委托的聲明
(1). delegate
delegate我們常用到的一種聲明
Delegate至少0個參數,至多32個參數,可以無返回值,也可以指定返回值類型。
例:public delegate int MethodtDelegate(int x, int y);表示有兩個參數,並返回int型。
(2). Action
Action是無返回值的泛型委托。
Action 表示無參,無返回值的委托
Action<int,string> 表示有傳入參數int,string無返回值的委托
Action至少0個參數,至多16個參數,無返回值。
例:public void Test<T>(Action<T> action,T p)
(3). Func
Func是有返回值的泛型委托
Func<int> 表示無參,返回值為int的委托
Func<object,string,int> 表示傳入參數為object, string 返回值為int的委托
Func至少0個參數,至多16個參數,根據返回值泛型返回。必須有返回值,不可void
例:public int Test<T1,T2>(Func<T1,T2,int>func,T1 a,T2 b)
(4) .predicate
predicate 是返回bool型的泛型委托
predicate<int> 表示傳入參數為int 返回bool的委托
Predicate有且只有一個參數,返回值固定為bool
例:public delegate bool Predicate<T> (T obj)
(5) .Lambada表達式
Lambada表達式就是一個便捷的匿名函數。"=>"箭頭左邊是傳進匿名函數的參數,而右邊則是處理參數的邏輯。
2.事件(Event)
事件只不過用了event進行修飾,也可以說它是一種具有事件性質的委托。
事件使用 發布-訂閱(publisher-subscriber) 模型。
發布事件的類,這被稱為 發布器(publisher) 類。其他接受該事件的類被稱為 訂閱器(subscriber) 類。
聲明事件(Event)
在類的內部聲明事件,首先必須聲明該事件的委托類型。例如:
public delegate void BoilerLogHandler(string status);
然后,聲明事件本身,使用 event 關鍵字:
public event BoilerLogHandler BoilerEventLog;