谁能解释一下函数;对我来说很简单

本文关键字:对我来说 简单 能解释 函数 一下 | 更新日期: 2023-09-27 18:17:52

我正在看的代码包含:

public virtual ICollection<T> GetPk(string pk)
{
    Expression<Func<T, bool>> predicate = c => c.PartitionKey == pk;
    return this.GetAll(predicate);
}

谁能解释一下<Func<T, bool>>的语法?

谁能解释一下函数<T, b >;对我来说很简单

简单地说,Func<T, bool>是匿名方法签名。第一种类型T为输入参数类型,第二种类型为返回类型。当您考虑您的表示时,这更像是一个方法:

bool AnonMethod(T arg0)
{
   return arg0.PartitionKey == pk;
}

最好的解释之一是MSDN

您可以使用此委托来表示可以作为参数传递的方法,而无需显式声明自定义委托。封装的方法必须与此委托定义的方法签名相对应。这意味着封装的方法必须有一个按值传递给它的参数,并且它必须返回一个值。

对于示例中的参数,T是输入参数的类型,bool是指定方法的返回类型。

Func<T, bool>表示一个函数,它接受一个T类型的对象并返回一个bool。它通常被称为"谓词",用于验证对象的条件。

Expression<Func<T, bool>>表示该函数的抽象语法树,即其语法结构。它可以用于分析函数的代码,用于各种目的,例如将其转换为SQL以对数据库执行。

背景;在Func<T, TResult>(以及这个家族的其他成员)成为框架的一部分之前,您要么必须显式地定义委托,要么使用匿名方法。

FuncAction是作为lambda表达式添加到语言中的一部分添加的。它们是框架定义的委托,lambda表达式作为其类型输入,但作为开发人员,您也可以使用它们来代替您自己的自定义委托定义。

你可以在这里得到一个很好的历史;

http://blogs.msdn.com/b/ericwhite/archive/2006/10/03/lambda-expressions.aspx

我总是觉得MSDN值得先检查一下,

http://msdn.microsoft.com/en-us/library/bb549151.aspx

被马希普打了,没有看到帖子弹出框。

基本上,你正在声明一个与签名匹配的方法,然后可以将其传递给调用以获取数据。

一开始会让人感到困惑,但Func<T, bool>描述了一个返回bool类型并接受t类型参数的函数

在这种情况下,T是一个具有PartitionKey属性的对象,并且这个GetPk方法使用Func<T, bool>来匹配实例对象中具有PartitionKey且匹配字符串pk的所有T项。

这是额外的语法,因此您可以知道函数的输入和输出。

Func<T, bool>意味着:函数有1个输入 T1个输出bool

这是函数

的其他变体