凯发k8官方网
收集整理的这篇文章主要介绍了
c#——lambda表达式与泛型委托demo
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
按要求编写lambda表达式:
.net已定义的func是一个泛型委托,它封装一个方法,该方法不具有参数,且返回由 tresult 参数指定的类型的值。它的基本用法是:
func
f1 = () => datetime.now.year;//lambda表达式无参数,返回int值,符合委托定义console.writeline(f1()); 该泛型委托有好几个同名兄弟类型,如func,func 等(直到t16)等,仿照上面的例子编写lambda表达式,并调用它们:
(1)写一个lambda表达式赋给func f2,使其完成取平方根功能(可用math.sqrt方法)。
(2)写一个lambda表达式赋给func f3,使两个整数参数先平方,再相加,再取平方根。
(3)predicate泛型委托表示一个条件,是用于判断指定参数是否符合条件的方法的抽象。写一个predicate型lambda表达式,并调用它。
(4)action、action、action…等委托封装的方法,有0至16个参数,但没有返回值,试写出action和action>的labmda表达式,并调用它们。
(调用它们时,如果需要参数,则自行生成;可以和java中的lambda表达式比较一下)
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;namespace homework6
{class program{static void main(string[] args){random random = new random();func f1 = () => datetime.now.year;//lambda表达式无参数,返回int值,符合委托定义console.writeline(f1());func f2 = (a) => math.sqrt(a);console.writeline(f2(random.next()));func f3 = (a,b)=> math.sqrt(a*a b*b);console.writeline(f3(random.next(), random.next()));predicate p1 = (a) => a>1;console.writeline(p1(random.next()));action a1 = (a) => { console.writeline(a); };a1("hello world");action> a2 = (a, b) => { console.writeline(b[a]); };list list = new list();for(int i = 0; i < 10; i ){list.add(random.next());}a2(2, list);}}
}
总结
以上是凯发k8官方网为你收集整理的c#——lambda表达式与泛型委托demo的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。