1 c# delegates anonymous-methods
根据我的理解,我解释Func委托的含义如下.请在需要时纠正它们.
Declaration : Func<int> dg ;
1.我可以将其解释为"指向返回整数的方法的委托吗?".
Declaration : Func<int,int> delg1=r=>2*r;
*2.我可以将其解释为"'r'是一个lambda表达式,它本身是一个整数类型的参数,被评估为'2*r'并返回一个int?.*
Comparison : Delegate and lambda expression
3.如果代表和lambdas都是函数poiinters,那里有什么不同?
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;
Run Code Online (Sandbox Code Playgroud)
4.如果上述两种结构都用于同一目的,那么哪里有所不同?
1)是的,但是说"一个委托引用一个不带参数的方法并返回一个整数"会更准确和准确.
2)否."r"不是lambda表达式."r"使用两次,首先声明 lambda表达式的形式参数,然后作为lambda表达式主体的一部分.但"r"不是lambda表达式.lambda表达式为"r => 2*r"
3)Lambdas和代表是不同的事情.lambda是"做某事的函数"的抽象概念.委托类型是事物类型的抽象概念,它是获取和返回某些类型的方法.特定的代表是对这种方法的引用.lambda可以转换为兼容的委托类型,如果这样做,在运行时,您将获得一个委托实例.但是lambda也可以转换为其他东西,比如表达式树.
4)他们没有达到同样的目的.表达式树是一个对象,它表示 lambda中提到的计算.委托是一个实际执行 lambda中提到的计算的对象.
归档时间: |
|
查看次数: |
149 次 |
最近记录: |