委托

定義:
委托是 函數(shù)(方法)的容器 ,可以理解為表示函數(shù)(方法)的變量類型用來存儲、傳遞函數(shù)(方法)。
委托的本質(zhì)是一個類,用來定義函數(shù)(方法)的類型(返回值和參數(shù)的類型)不同的函數(shù)(方法)必須對應(yīng)和各自"格式"一致的委托。
基本語法:
關(guān)鍵字 : delegate
語法:訪問修飾符 delegate 返回值 委托名(參數(shù)列表);
可以申明在namespace和class語句塊中
更多的寫在namespace中
定義自定義委托:
訪問修飾默認(rèn)不寫,為public,在別的命名空間中也能使用
private 其它命名空間就不能用了。
delegate void MyFun();
申明了一個可以用來存儲無參無返回值函數(shù)的容器。
這里只是定義了規(guī)則,并沒有使用。
delegate void MyFun();
委托規(guī)則的申明是不能重名(同一語句塊中)
表示用來裝載或傳遞 返回值為int 有一個int參數(shù)的函數(shù)的 委托 容器規(guī)則
delegate T MyFun3<T, K>(T v, K k);
委托是支持泛型的可以讓返回值和參數(shù)可變更方便我們的使用。
委托常用在:
作為類的成員
作為函數(shù)的參數(shù)
系統(tǒng)定義好的委托:
無參無返回值:
?Action action = Fun;
可以指定返回值類型的 泛型委托:
Func<string> funcString = Fun4;
可以傳n個參數(shù)的? 系統(tǒng)提供了 1到16個參數(shù)的委托
Action<int, string> action2 = Fun6;
可以穿n個參數(shù)的 并且有返回值的 系統(tǒng)也提供了 16個委托
Func<int, int> func2 = Fun2;