欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 编程语言 > c# >内容正文

c#

c#——lambda表达式与泛型委托demo -ag凯发k8国际

发布时间:2024/10/5 c# 28 豆豆
ag凯发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);}} }

总结

以上是ag凯发k8国际为你收集整理的c#——lambda表达式与泛型委托demo的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图