c#中action和func的區(qū)別是什么

c#
小億
255
2024-01-11 13:12:40
欄目: 編程語言

在C#中,Action和Func是兩種不同的委托類型,它們的區(qū)別在于參數(shù)和返回值的不同。

  1. Action是一個(gè)沒有返回值的委托類型。它可以接受最多16個(gè)輸入?yún)?shù),但沒有返回值。例如,一個(gè)Action委托可以表示一個(gè)沒有參數(shù)的方法,或者一個(gè)有多個(gè)參數(shù)但沒有返回值的方法。

示例:

Action<int, string> action = (x, y) => Console.WriteLine($"Action: {x}, {y}");
action(10, "Hello");

這里的Action委托接受一個(gè)int類型的參數(shù)和一個(gè)string類型的參數(shù),然后將它們打印到控制臺(tái)。

  1. Func是一個(gè)有返回值的委托類型。它可以接受最多16個(gè)輸入?yún)?shù),并返回一個(gè)值。例如,一個(gè)Func委托可以表示一個(gè)沒有參數(shù)但返回int類型的方法,或者一個(gè)有多個(gè)參數(shù)并返回string類型的方法。

示例:

Func<int, int, string> func = (x, y) => $"Func: {x + y}";
string result = func(10, 20);
Console.WriteLine(result);

這里的Func委托接受兩個(gè)int類型的參數(shù),然后返回它們的和作為string類型的結(jié)果。

總結(jié):Action和Func都是委托類型,用于表示方法的引用。它們的區(qū)別在于Action沒有返回值,而Func有返回值。

0