带有 Lambda 表达式的 C# Func

问题描述 投票:0回答:1

我正在努力理解一些 C# 代码。我正在尝试查找提供 Func 委托的此类用法的语法描述的文档。

public class Person 
{
 public string name {get; set;}
 public int Age {get; set:}
}
           
Func<Person, bool> IsOlderOrEqual(int age) =>
                pm => pm.Age >= age;

通过解释语法文档,我的理解是,参数必须是 T 类型,在本例中是 Person。

public delegate TResult Func<in T, out TResult>(T arg);

我也遇到过这样的代码

 Func<SomeClass, bool> isActiveSelector = it => it.IsActive;

我想知道 Microsoft 是否有关于 Func 委托使用的不同语法变体的文档,特别是与 lambda 运算符结合使用的文档。

c# func
1个回答
0
投票

Func<Person, bool> IsOlderOrEqual(int age)
是一个 函数,它返回
Func<Person, bool>
并且是 表达式主体。它可以重写为

Func<Person, bool> IsOlderOrEqual(int age)
{
    return pm => pm.Age >= age;
}

Func<SomeClass, bool> isActiveSelector = it => it.IsActive;
是类型为 Func<SomeClass, bool>
variable
,使用值
it => it.IsActive
进行初始化。

© www.soinside.com 2019 - 2024. All rights reserved.