偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C# 中的 Action 和 Func 委托

開發(fā)
Action<T>和Func<T>?委托是C#中非常有用的工具,它們提供了一種簡潔、類型安全的方式來引用和調用方法。

在C#中,Action<T>和Func<T>是兩種常用的泛型委托,它們?yōu)殚_發(fā)者提供了一種類型安全的方式來定義和處理方法引用。Action<T>和Func<T>的主要區(qū)別在于,Action<T>用于封裝沒有返回值(即返回類型為void)的方法,而Func<T>則用于封裝有返回值的方法。

Action委托

Action<T>委托用于表示接受特定類型參數并不返回任何值(void)的方法。T在這里是一個占位符,代表委托可以接受的參數類型。Action<T>可以有多個類型參數,比如Action<T1, T2, ...>,最多可以支持16個類型參數。

示例代碼:

using System;

class Program
{
    static void Main()
    {
        // 定義一個 Action<string> 委托實例,并關聯(lián)一個方法
        Action<string> greet = Greet;
        
        // 調用委托實例
        greet("World");
    }
    
    static void Greet(string name)
    {
        Console.WriteLine($"Hello, {name}!");
    }
}

在這個例子中,我們定義了一個Greet方法,它接受一個字符串參數并不返回任何值。然后,我們創(chuàng)建了一個Action<string>委托實例,并將其關聯(lián)到Greet方法上。最后,我們通過委托實例調用了Greet方法。

Func委托

與Action<T>不同,Func<T>委托用于表示具有返回值的方法。Func<T>的第一個類型參數是輸入參數的類型,最后一個類型參數是返回值的類型。例如,Func<int, int>表示接受一個int參數并返回一個int值的方法。

示例代碼:

using System;

class Program
{
    static void Main()
    {
        // 定義一個 Func<int, int> 委托實例,并關聯(lián)一個方法
        Func<int, int> square = CalculateSquare;
        
        // 調用委托實例并打印結果
        int result = square(5);
        Console.WriteLine($"The square of 5 is {result}.");
    }
    
    static int CalculateSquare(int number)
    {
        return number * number;
    }
}

在這個例子中,我們定義了一個CalculateSquare方法,它接受一個整數參數并返回一個整數結果。然后,我們創(chuàng)建了一個Func<int, int>委托實例,并將其關聯(lián)到CalculateSquare方法上。最后,我們通過委托實例調用了CalculateSquare方法,并打印了結果。

總結

Action<T>和Func<T>委托是C#中非常有用的工具,它們提供了一種簡潔、類型安全的方式來引用和調用方法。通過使用這些委托,開發(fā)者可以更加靈活地編寫可重用的代碼,并輕松地實現回調函數和事件驅動的設計模式。在實際開發(fā)中,根據方法是否有返回值來選擇使用Action<T>還是Func<T>委托是非常重要的。

責任編輯:趙寧寧 來源: 程序員編程日記
相關推薦

2024-10-05 00:00:35

Action?C#Func?

2024-09-29 09:28:38

Action?C#

2021-05-13 07:20:44

C# ActionDelegate

2009-09-08 15:28:24

C#委托

2009-08-20 18:11:08

C#異步委托

2024-05-16 13:36:04

C#委托事件

2009-08-18 10:54:17

C#事件和委托

2009-08-03 13:23:04

C#編程組件-事件-委托

2024-05-15 09:11:51

委托事件C#

2011-08-29 10:35:53

反射方式C#

2009-08-27 16:53:01

C#委托C#事件

2024-06-28 10:19:02

委托事件C#

2024-12-23 08:00:00

委托C#編程

2009-10-09 09:07:40

C#委托和事件

2009-08-26 14:27:54

C#委托和事件

2009-08-20 18:37:52

委托C#異步委托

2011-06-30 10:28:50

C#開發(fā)

2009-08-18 10:35:26

C#委托

2011-04-22 09:14:26

C#委托

2009-09-01 18:36:35

C#委托實例
點贊
收藏

51CTO技術棧公眾號