gpt4 book ai didi

c# - ASP.NET 委托(delegate)和表达式 - 信息请求

转载 作者:太空宇宙 更新时间:2023-11-03 18:19:05 26 4
gpt4 key购买 nike

根据我的理解,我对Func delegate的含义解释如下,如有需要请指正。

Declaration : Func<int> dg ;

1。我可以将其解释为“委托(delegate) 指向返回一个的方法 整数?”。

Declaration : Func<int,int> delg1=r=>2*r;

*2。我可以将其解释为“‘r’是一个 lambda 表达式,它本身是 一个整数类型被评估为'2 * r'并返回一个int? .*

Comparison : Delegate and lambda expression

3。如果委托(delegate)和 lambda 都作为函数指针工作,有什么不同?

Comparison : Are the following two declarations equal?

decl 1 : Func<int,int> fn=(r)=>45*r;

decl 2 : Expression<Func<int,int>> ex = (r) => r * 10;

4。如果上述两种构造都用于相同的目的,那么它们有什么不同呢?

最佳答案

1) 是的,但更精确和准确的说法是“指代不带参数并返回整数的方法的委托(delegate)”。

2) 不,“r”不是 lambda 表达式。 “r”被使用了两次,第一次是声明 lambda 表达式的形式参数,第二次是作为该 lambda 表达式主体的一部分。但是“r”不是 lambda 表达式。 lambda 表达式是 "r=>2*r"

3) Lambda 和委托(delegate)是不同的东西。 lambda 是“做某事的函数”的抽象概念。委托(delegate)类型是事物类型的抽象概念,事物是接受和返回某些类型的方法。特定委托(delegate)是对此类方法的引用。 lambda 可以转换 为兼容的委托(delegate)类型,如果您这样做,在运行时您将获得一个委托(delegate)实例。但是 lambda 也可以转换为其他东西,比如表达式树。

4) 它们的目的不同。表达式树是一个对象,委托(delegate) lambda 中提到的计算。委托(delegate)是一个对象,它实际上执行 lambda 中提到的计算。

关于c# - ASP.NET 委托(delegate)和表达式 - 信息请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1591628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com