Func<in T, out TResult>的应用(带参数T,有返回值TResult)

在 C# 中,Func<bool, string>是一个委托类型,表示一个接受 bool类型参数并返回 string类型的方法。

  1. ​声明与赋值
    // 声明 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";
}

  1. ​调用委托
    bool input = true;
    string result = boolToString(input); // 调用委托
    Console.WriteLine(result); // 输出 "True"

  2. ​直接作为参数传递
    委托常用于需要方法作为参数的场景(如 LINQ)
    List bools = new List { true, false, true };
    // 将委托传递给 Select 方法
    var strings = bools.Select(boolToString).ToList();
    // 结果:["True", "False", "True"]

  3. ​完整示例
    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"]
}

}

图片

posted on 2025-10-17 09:58  lyc6921  阅读(3)  评论(0)    收藏  举报

导航