C# Func用法
C# Func用法
在 C# 中,Func
是一個委託類型,用於表示具有返回值的方法。Func
委託可以有零個或多個輸入參數,但必須有一個返回值。這使得 Func
非常適合用來封裝那些需要計算並返回結果的方法。
基本語法
Func
委託的定義如下:
Func<in T1, in T2, ..., out TResult>
T1, T2, ...
是輸入參數的類型。
TResult
是返回值的類型。
示例
以下是一些 Func
的常見用法示例:
1.沒有參數,返回一個值
Func<int> getRandomNumber = () => new Random().Next(1, 100);
int number = getRandomNumber();
Console.WriteLine(number);
這個例子中,getRandomNumber
是一個沒有輸入參數但返回一個隨機數的 Func<int>
委託。
2.一個參數,返回一個值
Func<int, int> square = x => x * x;
int result = square(5);
Console.WriteLine(result); // Output: 25
3.多個參數,返回一個值
Func<int, int, int> add = (a, b) => a + b;
int sum = add(3, 4);
Console.WriteLine(sum); // Output: 7
在這個例子中,add
是一個接受兩個整數並返回它們和的 Func<int, int, int>
。
Func
的優點
- 簡潔:使用
Func
可以減少冗長的代碼,特別是在使用匿名方法或 Lambda 表達式時。 - 靈活:可以將方法作為參數傳遞給其他方法,這在 LINQ 查詢中非常常見。
與 Action
的比較
Func
與 Action
類似,但 Action
沒有返回值。Func
總是有返回值,因此如果你需要一個不返回值的委託,應該使用 Action
。
綜合應用
例如,在 LINQ 查詢中,你經常會看到 Func
被用來定義投影或過濾邏輯:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
List<int> squaredNumbers = numbers.Select(x => x * x).ToList();
在這裡,Select
方法接受一個 Func<int, int>
,該委託將每個元素映射為其平方。
這就是 Func
在 C# 中的基本用法。它是一個非常強大的工具,允許你以更靈活和簡潔的方式處理方法和邏輯。
其他範例
void Main()
{
Func<string, bool> funcA = x => x.StartsWith("A");
funcA("01").Dump(); //False
funcA("A01").Dump(); //True
}
比較傳入字串是否為A開頭
留言
張貼留言