Func<in T, out TResult>的应用(带参数T,有返回值TResult)
在 C# 中,Func<bool, string>是一个委托类型,表示一个接受 bool类型参数并返回 string类型的方法。
- 声明与赋值
// 声明 Func<bool, string> 变量
Func<bool, string> boolToString;
// 赋值方式 1:Lambda 表达式(最常用)
boolToString = (boolValue) => boolValue ? "True" : "False";//返回值是string
//boolToString = (X) => X? "True" : "False";//返回值是string
//boolToString = boolValue? "True" : "False";//返回值是string
// 赋值方式 2:普通方法
boolToString = ConvertBoolToString; // 指向自定义方法
private static string ConvertBoolToString(bool value)
{
return value ? "True" : "False";
}
-
调用委托
bool input = true;
string result = boolToString(input); // 调用委托
Console.WriteLine(result); // 输出 "True" -
直接作为参数传递
委托常用于需要方法作为参数的场景(如 LINQ)
Listbools = new List { true, false, true };
// 将委托传递给 Select 方法
var strings = bools.Select(boolToString).ToList();
// 结果:["True", "False", "True"] -
完整示例
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
// 定义委托变量
Func<bool, string> boolToString = b => b ? "YES" : "NO";
// 调用委托
Console.WriteLine(boolToString(true)); // 输出 "YES"
Console.WriteLine(boolToString(false)); // 输出 "NO"
// 结合 LINQ
var values = new List<bool> { true, false, true };
var results = values.Select(boolToString).ToList();
// results = ["YES", "NO", "YES"]
}
}
本文来自博客园,作者:lyc6921,转载请注明原文链接:https://www.cnblogs.com/lyc6921/p/19147126