1. 程式人生 > >C#中常見的系統內建委託用法詳解

C#中常見的系統內建委託用法詳解

這篇文章主要介紹了C#中常見的系統內建委託用法,主要包括了Action類的委託、Func類的委託、Predicate<T>委託、Comparison<T>委託等,需要的朋友可以參考下

一般來說,C#在公共語言執行時(CLR)環境中系統為我們內建了一些常用的委託,包括Action類的委託、Func類的委託、Predicate<T>委託、Comparison<T>委託等等。以上這些委託的名稱空間都是System,所屬程式集都是 mscorlib.dll,今天本文就來講一講這些委託的使用方法。

就像我們自己已定義好的一樣,要實現某些功能,我們可以直接利用系統內建委託,例項化它們,而不必顯式定義一個新委託並將命名方法分配給該委託。如:

?
1 2 3 4 5 6 7 8 9 public static void Test() { Console.WriteLine("Just For Test"); } static void Main(string[] args) { Action a = new Action(Test); //直接例項化一個Action委託,不用自己再定義新委託 a(); }

只要瞭解了該系統內建委託是幹什麼的,傳什麼引數,返回什麼值,大家就可以仿上述例子自行呼叫,不再贅述。下面是我對這四類委託的總結,並附有結合匿名方法與Lambda表示式的範例,兩種方法實現的結果一樣,大家可舉一反三,靈活運用。

一、Action類的委託

1.Action委託 封裝一個方法,該方法不具有引數並且不返回值

2.Action<T>委託 封裝一個方法,該方法只有一個引數並且不返回值

3.Action<T1,T2>委託 封裝一個方法,該方法具有兩個引數並且不返回值

…… ……

17.Action<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>委託 封裝一個方法,該方法具有16個引數並且不返回值

下面以Action<T>委託為例,示範如何使用Action類的委託,該類委託僅僅是引數個數上有區別而已。

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 static void Main(string[] args) {   #region Action<T>委託示例 //需求:打印出整型集合list的元素 List<int> list = new List<int>() { 1, 2, 3, 4, 5 }; //將匿名方法分配給 Action<T> 委託例項 Action<int> concat1 = delegate(

相關推薦

C#常見系統委託用法

這篇文章主要介紹了C#中常見的系統內建委託用法,主要包括了Action類的委託、Func類的委託、Predicate<T>委託、Comparison<T>委託等,需要的朋友可以參考下 一般來說,C#在公共語言執行時(CLR)環境中系統為我

c++atoi、substr、c_str用法

最近寫程式中用到這幾個函式,下面將這幾個函式的用法總結如下:1.atoi函式。功能:將字串轉換成長整型數。用法:int atoi(const char *nptr)示例程式碼如下:#include <stdio.h> #include <stdlib.h&g

C++this指標的作用以及用法

為什麼引用this指標? 當我們在類中定義了一個變數,同時又在類成員函式中定義了同一個變數時,也就是變數名重複時,但是我們要想使用類中的定義的變數,此時就需要this指標了。 1.this指標的作用 指標存在於類的成員函式中,指向被呼叫函式類例項的地址。  一個物件的thi

Action 與 Func是.NET類庫增加的委託,以便更加簡潔方便的使用委託

Action 與 Func是.NET類庫中增加的內建委託,以便更加簡潔方便的使用委託。 最初使用委託時,均需要先定義委託型別,然後定義一個符合委託型別簽名的函式, 在呼叫前,需宣告並建立委託物件,將指定函式與委託進行關聯。 如例1: public delegate int Math(

python常見高階函式

常見的內建高階函式:map,reduce,filter,sorted 在python3中,reduce已經不算是內建函數了,據說是因為龜叔不喜歡map / reduce這樣的內建函式,但是在社群的極

C++模版STL map 和 string, vector 的用法

參考: 1. map 用法詳解 std map是STL的一個關聯容器,它提供一對一(其中第一個可以稱為關鍵字,每個關鍵字只能在map中出現一次,第二個可能稱為該關鍵字的值)的資料處理能力,由於這個特性,它完成有可能在我們處理一對一資料的時候,在程式設計上提

oracle的exists 和not exists 用法

sdn ref 用法詳解 html nbsp e30 .net tail sin oracle中的exists 和not exists 用法詳解 http://blog.csdn.net/zhiweianran/article/details/7868894oracle

文件系統基礎及ext文件系統及管理、文件系統的使用及卸載、fstab文件格式及自動掛載系統

文件系統創建文件系統--分區格式化 格式化: 低級格式化: 劃分磁道 高級格式化: 創建文件系統,按照某種特定的標準,將整個分區劃分為大小相同的若幹小的邏輯編址單元,每個這樣的單元稱為塊(block)【windows中稱為簇】; 劃分塊的標準: 在Linux的文件系統中,主要的塊的劃分

Python模塊requests模塊的基本用法

python CTF 首先還是老生長談,說說定義和作用,request模塊是一個用於訪問網絡的模塊,其實類似的模塊還有很多,不在一一在這裏解釋。這麽多的相似的模塊為什麽都說只有這個好用呢。因為他人性化。如果你學過urllib之類的模塊的話,對比一下就很清楚了(文章url以題目實

Pythonscatter函數參數用法

col width 用法 技術 顏色 .com 方法 new matplot 1、scatter函數原型 2、其中散點的形狀參數marker如下: 3、其中顏色參數c如下: 4、基本的使用方法如下: #導入必要的模塊 import numpy

python函式 sorted

sorted作為python的內建全域性方法,用於可迭代序列的排序。   sorted函式接受3個引數: sorted(iterable,key,reverse)sorted函式有以下特點:1)對列表排序,返回的物件不會改變原列表 >>> list =[1,2,3,

python3.6模組——random

python內建模組random是用來生成隨機數的,在許多場合都能應用到,算是比較常見的一種模組吧,下面詳細介紹其具體用法。 基本用法 隨機生成浮點數:有兩種,一種沒有引數,預設是0~1,另一種可以

Spark2.1.0——RPC框架

private TransportClient createClient(InetSocketAddress address) throws IOException, InterruptedException { logger.debug("Creating new connecti

Java部類作用用法

Java中,可以將一個類定義在另一個類裡面或者一個方法裡面,這樣的類稱為內部類。 內部類包括四種:成員內部類、區域性內部類、匿名內部類和靜態內部類。 內部類的作用: 1.Java只支援單重繼承,想擴充套件功能,去實現介面吧。很快Java的設計者就發現了他們犯了矯枉過正的

Java部類和匿名部類的用法

一、內部類:        (1)內部類的同名方法         內部類可以呼叫外部類的方法,如果內部類

Python 3.7.1 namedtuple 具名元組基本用法

Python 3.7.1 中 namedtuple 具名元組基本用法詳解 轉載請註明出處:https://blog.csdn.net/jpch89/article/details/84645251 文章目錄 Python 3.7.1 中 namedtupl

c++虛表指標與虛擬函式

1.c++類中的過載 看看下面的程式碼: #include <iostream> using namespace std; class Vehicle

C#static void Main(string[] args) 引數

1 using System; 2 3 namespace DemoMainArgs 4 { 5 class Program 6 { 7 /// <summary> 8 /// 應用程式入口 9 /// <

HTMLhead標籤的使用標籤

一、head包含元素簡介 <head>元素包含了所有的頭部標籤元素,在head中你可以插入指令碼(scripts),樣式檔案(CSS),及各種meta資訊,可以新增到頭部區域的元素為 <title> 定義網頁的標題(瀏覽器工具欄標題,搜素引擎結果頁面標題,收藏夾標題) <m

C++面試常見的幾個庫函式

strcpy() 原型宣告:char strcpy(char dest, const char *src);  功能:把從src地址開始且含有NULL結束符的字串複製到以dest開始的地址空間  說明:src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容