我正在努力理解一些 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 运算符结合使用的文档。
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
进行初始化。