C# Action 委托

Action是在 System 命名空間中定義的委托類型。Action類型委托與Func委托相同,除了Action委托不返回值。換句話說,可以將Action委托與具有void返回類型的方法一起使用。

什么是Action泛型委托

Action<T>是.NET Framework內置的泛型委托,可以使用Action<T>委托以參數(shù)形式傳遞方法,而不用顯示聲明自定義的委托。封裝的方法必須與此委托定義的方法簽名相對應。也就是說,封裝的方法必須具有一個通過值傳遞給它的參數(shù),并且不能有返回值。

例如,以下委托打印一個int值。

public delegate void Print(int val);

static void ConsolePrint(int i)
{
    Console.WriteLine(i);
}

static void Main(string[] args)
{           
    Print prnt = ConsolePrint;
    prnt(10);
}
輸出:
10

您可以使用Action委托代替上面定義的Print委托,例如:

static void ConsolePrint(int i)
{
    Console.WriteLine(i);
}

static void Main(string[] args)
{
    Action<int> printActionDel = ConsolePrint;
    printActionDel(10);
}

您可以使用 new 關鍵字或直接分配一個方法來初始化Action委托:

Action<int> printActionDel = ConsolePrint;

//或者

Action<int> printActionDel = new Action<int>(ConsolePrint);

Action 委托最多可以接受16個不同類型的輸入?yún)?shù)。

Action委托 與 匿名方法

還可以將 匿名方法 分配給 Action 委托,例如:

static void Main(string[] args)
{
    Action<int> printActionDel = delegate(int i)
                                {
                                    Console.WriteLine(i);
                                };

    printActionDel(10);
}
輸出:
10

Action委托與Lambda表達式

Lambda表達式也可以與Action委托一起使用:

static void Main(string[] args)
{

    Action<int> printActionDel = i => Console.WriteLine(i);
       
    printActionDel(10);
}

因此,您可以使用任何不使用Action委托類型返回值的方法。

Action 委托使用舉例說明

  • Action委托至少0個參數(shù),至多16個參數(shù),無返回值。

  • Action 表示無參,無返回值的委托。

  • Action<int,string> 表示有傳入?yún)?shù)int,string,無返回值的委托。

  • Action<int,string,bool> 表示有傳入?yún)?shù)int,string,bool,無返回值的委托。

  • Action<int,int,int,int> 表示有傳入4個int型參數(shù),無返回值的委托。

Action 和 Func 委托的優(yōu)點

  1. 輕松快捷地定義委托。

  2. 使代碼簡短。

  3. 整個應用程序中的兼容類型。

要記住的要點

  1. Action 委托與 Func 委托相同,只是 Action 委托 不返回任何內容。返回類型必須為 void。

  2. Action 委托可以具有0到16個輸入?yún)?shù)。

  3. Action 委托可以與匿名方法 或 lambda表達式一起使用。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清