早教吧作业答案频道 -->数学-->
C#中"()=>"表示什么意思
题目详情
C#中 "()=>"表示什么意思
▼优质解答
答案和解析
计算机鞭策语言
Lambda 表达式 Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型.
所有 Lambda 表达式都使用 Lambda 运算符 =>;,该运算符读为“goes to”.该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块.Lambda 表达式 x => x * x 读作“x goes to x times x”.可以将此表达式分配给委托类型,如下所示:
delegate int del(int i);del myDelegate = x => x * x;int j = myDelegate⑸; //j = 25
创建表达式目录树类型
复制
using System.Linq.Expressions;// ...Expression = x => x * x;
=> 运算符具有与赋值运算符 (=) 相同的优先级,并且是右结合运算符.
Lambda 用在基于方法的 LINQ 查询中,作为诸如Where和 Where 等标准查询运算符方法的参数.
使用基于方法的语法在 Enumerable 类中调用 Where 方法时(像在 LINQ to Objects 和 LINQ to XML 中那样),参数是委托类型 System.Func;.使用 Lambda 表达式创建委托最为方便.例如,当您在 System.Linq.Queryable 类中调用相同的方法时(像在 LINQ to SQL 中那样),则参数类型是System.Linq.Expressions.Expression;,其中 Func 是包含至多五个输入参数的任何 Func 委托.同样,Lambda 表达式只是一种用于构造表达式目录树的非常简练的方式.尽管事实上通过 Lambda 创建的对象的类型是不同的,但 Lambda 使得Where调用看起来类似.
在前面的示例中,请注意委托签名具有一个 int 类型的隐式类型输入参数,并返回 int.可以将 Lambda 表达式转换为该类型的委托,因为该表达式也具有一个输入参数 (x),以及一个编译器可隐式转换为 int 类型的返回值.(以下几节中将对类型推理进行详细讨论.)使用输入参数 5 调用委托时,它将返回结果 25.
在is或as运算符的左侧不允许使用 Lambda.
带有标准查询运算符的 Lambda
--------------------------------------------------------------------------------
许多标准查询运算符都具有输入参数,其类型是泛型委托的 Func 系列的其中之一.Func 委托使用类型参数定义输入参数的数目和类型,以及委托的返回类型.Func 委托对于封装应用于一组源数据中每个元素的用户定义表达式非常有用.例如,假设有以下委托类型:
public delegate TResult Func(TArg0 arg0)
可以将委托实例化为 Func myFunc,其中 int 是输入参数,bool 是返回值.始终在最后一个类型参数中指定返回值.Func 定义包含两个输入参数(int 和 string)且返回类型为 bool 的委托.在调用下面的 Func 委托时,该委托将返回 true 或 false 以指示输入参数是否等于 5:
Func myFunc = x => x == 5;
bool result = myFunc⑷; // returns false of course
当参数类型为 Expression 时,您也可以提供 Lambda 表达式,例如在 System.Linq.Queryable 内定义的标准查询运算符中.如果指定 Expression 参数,Lambda 将编译为表达式树.
此处显示了一个标准查询运算符,Count 方法:
int[] numbers = { 5,4,1,3,9,8,6,7,2,0 };
int oddNumbers = numbers.Count(n => n % 2 == 1);
编译器可以推断输入参数的类型,或者您也可以显式指定该类型.这个特别的 Lambda 表达式将计算整数 (n) 的数量,这些整数除以 2 时余数为 1.
以下方法将生成一个序列,其中包含 numbers 数组中在 9 左边的所有元素,因为 9 是序列中不满足条件的第一个数字:
var firstNumbersLessThan6 = numbers.TakeWhile(n => n < 6);
此示例演示如何通过将输入参数括在括号中来指定多个输入参数.该方法将返回数字数组中的所有元素,直至遇到一个值小于其位置的数字为止.不要将 Lambda 运算符 (=>) 与大于等于运算符 (>=) 混淆.
var firstSmallNumbers = numbers.TakeWhile((n,index) => n >= index);
Lambda 中的类型推理
--------------------------------------------------------------------------------
在编写 Lambda 时,通常不必为输入参数指定类型,因为编译器可以根据 Lambda 主体、基础委托类型以及 C# 语言规范中描述的其他因素推断类型.对于大多数标准查询运算符,第一个输入是源序列中的元素的类型.因此,如果要查询 IEnumerable;,则输入变量将被推断为 Customer 对象,这意味着您可以访问其方法和属性:
customers.Where(c => c.City == "London");
Lambda 的一般规则如下:
Lambda 包含的参数数量必须与委托类型包含的参数数量相同.
Lambda 中的每个输入参数必须都能够隐式转换为其对应的委托参数.
Lambda 的返回值(如果有)必须能够隐式转换为委托的返回类型.
请注意,Lambda 表达式本身没有类型,因为常规类型系统没有“Lambda 表达式”这一内部概念.但是,有时会不正式地论及 Lambda 表达式的“类型”.在这些情况下,类型是指委托类型或 Lambda 表达式所转换为的 Expression 类型.
python 中的 lambda
数字的平方
>>> f = (lambda x:x + 2)
>>> print(f(5))
7
Lambda 表达式 Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型.
所有 Lambda 表达式都使用 Lambda 运算符 =>;,该运算符读为“goes to”.该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块.Lambda 表达式 x => x * x 读作“x goes to x times x”.可以将此表达式分配给委托类型,如下所示:
delegate int del(int i);del myDelegate = x => x * x;int j = myDelegate⑸; //j = 25
创建表达式目录树类型
复制
using System.Linq.Expressions;// ...Expression = x => x * x;
=> 运算符具有与赋值运算符 (=) 相同的优先级,并且是右结合运算符.
Lambda 用在基于方法的 LINQ 查询中,作为诸如Where和 Where 等标准查询运算符方法的参数.
使用基于方法的语法在 Enumerable 类中调用 Where 方法时(像在 LINQ to Objects 和 LINQ to XML 中那样),参数是委托类型 System.Func;.使用 Lambda 表达式创建委托最为方便.例如,当您在 System.Linq.Queryable 类中调用相同的方法时(像在 LINQ to SQL 中那样),则参数类型是System.Linq.Expressions.Expression;,其中 Func 是包含至多五个输入参数的任何 Func 委托.同样,Lambda 表达式只是一种用于构造表达式目录树的非常简练的方式.尽管事实上通过 Lambda 创建的对象的类型是不同的,但 Lambda 使得Where调用看起来类似.
在前面的示例中,请注意委托签名具有一个 int 类型的隐式类型输入参数,并返回 int.可以将 Lambda 表达式转换为该类型的委托,因为该表达式也具有一个输入参数 (x),以及一个编译器可隐式转换为 int 类型的返回值.(以下几节中将对类型推理进行详细讨论.)使用输入参数 5 调用委托时,它将返回结果 25.
在is或as运算符的左侧不允许使用 Lambda.
带有标准查询运算符的 Lambda
--------------------------------------------------------------------------------
许多标准查询运算符都具有输入参数,其类型是泛型委托的 Func 系列的其中之一.Func 委托使用类型参数定义输入参数的数目和类型,以及委托的返回类型.Func 委托对于封装应用于一组源数据中每个元素的用户定义表达式非常有用.例如,假设有以下委托类型:
public delegate TResult Func(TArg0 arg0)
可以将委托实例化为 Func myFunc,其中 int 是输入参数,bool 是返回值.始终在最后一个类型参数中指定返回值.Func 定义包含两个输入参数(int 和 string)且返回类型为 bool 的委托.在调用下面的 Func 委托时,该委托将返回 true 或 false 以指示输入参数是否等于 5:
Func myFunc = x => x == 5;
bool result = myFunc⑷; // returns false of course
当参数类型为 Expression 时,您也可以提供 Lambda 表达式,例如在 System.Linq.Queryable 内定义的标准查询运算符中.如果指定 Expression 参数,Lambda 将编译为表达式树.
此处显示了一个标准查询运算符,Count 方法:
int[] numbers = { 5,4,1,3,9,8,6,7,2,0 };
int oddNumbers = numbers.Count(n => n % 2 == 1);
编译器可以推断输入参数的类型,或者您也可以显式指定该类型.这个特别的 Lambda 表达式将计算整数 (n) 的数量,这些整数除以 2 时余数为 1.
以下方法将生成一个序列,其中包含 numbers 数组中在 9 左边的所有元素,因为 9 是序列中不满足条件的第一个数字:
var firstNumbersLessThan6 = numbers.TakeWhile(n => n < 6);
此示例演示如何通过将输入参数括在括号中来指定多个输入参数.该方法将返回数字数组中的所有元素,直至遇到一个值小于其位置的数字为止.不要将 Lambda 运算符 (=>) 与大于等于运算符 (>=) 混淆.
var firstSmallNumbers = numbers.TakeWhile((n,index) => n >= index);
Lambda 中的类型推理
--------------------------------------------------------------------------------
在编写 Lambda 时,通常不必为输入参数指定类型,因为编译器可以根据 Lambda 主体、基础委托类型以及 C# 语言规范中描述的其他因素推断类型.对于大多数标准查询运算符,第一个输入是源序列中的元素的类型.因此,如果要查询 IEnumerable;,则输入变量将被推断为 Customer 对象,这意味着您可以访问其方法和属性:
customers.Where(c => c.City == "London");
Lambda 的一般规则如下:
Lambda 包含的参数数量必须与委托类型包含的参数数量相同.
Lambda 中的每个输入参数必须都能够隐式转换为其对应的委托参数.
Lambda 的返回值(如果有)必须能够隐式转换为委托的返回类型.
请注意,Lambda 表达式本身没有类型,因为常规类型系统没有“Lambda 表达式”这一内部概念.但是,有时会不正式地论及 Lambda 表达式的“类型”.在这些情况下,类型是指委托类型或 Lambda 表达式所转换为的 Expression 类型.
python 中的 lambda
数字的平方
>>> f = (lambda x:x + 2)
>>> print(f(5))
7
看了C#中"()=>"表示什么意思...的网友还看了以下:
"锪",这个字的汉语拼音是什么?中文意思是什么?好像是金加工中的一道工序吧! 2020-03-30 …
毒刑拷打算得了什么!中什么的意思 2020-04-26 …
llikeeating什么very什么中文意思是我很喜欢吃桔子 2020-05-14 …
Maps______a very important role in everyday life. 2020-05-16 …
soas和asas什么区别,computerknowledgehasbecomerequireme 2020-05-17 …
ratherthan是什么中文意思?我不知道它的意思 2020-05-17 …
中文意思是---setofffromothers?这句whatconsiderationenabl 2020-06-05 …
在什么中,在什么中,什么什么什么什么(造句)例子:在微风中,在阳光中,燕子斜着身子在天空中掠过 2020-06-05 …
IhaveneverseeaTVprogramthemancannotfindaparkingsp 2020-06-06 …
什么是VCR?它的全称是什么?中文意思是什么啊? 2020-06-06 …