委托,匿名方法,Lambda表达式

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace 委托
 7 {
 8     class Program
 9     {
10         /// <summary>
11         ///
12         /// </summary>
13         /// <param name="param1"></param>
14         /// 把委托变量作为参数传递给一个函数。函数就可以使用委托调用它引用的任何函数。
15         /// 简单讲:各种方法都可以给委托调用,然后根据条件判断具体使用的哪个方法;不用关心具体的方法,感觉没啥用啊!!!
16         /// <param name="param2"></param>
17         /// <returns></returns>
18         delegate double processDelegate(double param1 ,double param2);//委托的声明
19         static double multiply(double param1, double param2)
20         { return param1 * param2; }
21         static double divide(double param1, double param2)
22         { return param1 / param2; }
23         static void Main(string[] args)
24         {
25             processDelegate process;
26             double d1 = 3;
27             double d2 = 2;
28             int i1;
29             input: Console.WriteLine("输入一个数字用来判断");
30
31              try
32             {
33                 i1 = Convert.ToInt32(Console.ReadLine());
34                 Console.WriteLine("输入的数字是:{0}",i1.ToString());
35             }
36             catch (Exception e)
37             {
38
39                 // throw ;
40                 Console.WriteLine(e.Message+"请在提示后重新输入");
41
42                 goto input;
43             }
44
45
46             if (i1>=0&&i1<=5)
47             {
48                 Console.WriteLine("相除");
49                 process = new processDelegate(divide);
50
51             }
52             else
53             {
54                 Console.WriteLine("相乘");
55                 process = new processDelegate(multiply);
56             }
57
58             Console.WriteLine(process(d1,d2));
59             Console.ReadLine();
60         }
61     }
62 }

单纯的委托,和单纯的两个方法

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace 委托
 7 {
 8     class Program
 9     {
10         /// <summary>
11         ///
12         /// </summary>
13         /// <param name="param1"></param>
14         /// 把委托变量作为参数传递给一个函数。函数就可以使用委托调用它引用的任何函数。
15         /// 简单讲:各种方法都可以给委托调用,然后根据条件判断具体使用的哪个方法;不用关心具体的方法,感觉没啥用啊!!!
16         /// 加上匿名方法,感觉挺有意思了
17         /// <param name="param2"></param>
18         /// <returns></returns>
19         delegate double processDelegate(double param1 ,double param2);//委托的声明
20
21
22         //static double multiply(double param1, double param2)
23         //{ return param1 * param2; }
24         //static double divide(double param1, double param2)
25         //{ return param1 / param2; }
26         //把上面两个方法给匿名了
27
28         static void Main(string[] args)
29         {
30             processDelegate process;
31             double d1 = 3;
32             double d2 = 2;
33             int i1;
34             input: Console.WriteLine("输入一个数字用来判断");
35
36              try
37             {
38                 i1 = Convert.ToInt32(Console.ReadLine());
39                 Console.WriteLine("输入的数字是:{0}",i1.ToString());
40             }
41             catch (Exception e)
42             {
43
44                 // throw ;
45                 Console.WriteLine(e.Message+"请在提示后重新输入");
46
47                 goto input;
48             }
49
50
51             if (i1>=0&&i1<=5)
52             {
53                 Console.WriteLine("相除");
54                 //process = new processDelegate(divide);//匿名了
55                 process = delegate (double param1, double param2)
56                     { return param1 / param2; };
57
58
59             }
60             else
61             {
62                 Console.WriteLine("相乘");
63                 //process = new processDelegate(multiply);//匿名了
64                 process = delegate (double param1, double param2)
65                 { return param1 * param2; };
66
67             }
68
69             Console.WriteLine(process(d1,d2));
70             Console.ReadLine();
71         }
72     }
73 }

委托和两个匿名方法

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace 委托
 7 {
 8     class Program
 9     {
10         /// <summary>
11         ///
12         /// </summary>
13         /// <param name="param1"></param>
14         /// 把委托变量作为参数传递给一个函数。函数就可以使用委托调用它引用的任何函数。
15         /// 简单讲:各种方法都可以给委托调用,然后根据条件判断具体使用的哪个方法;不用关心具体的方法,感觉没啥用啊!!!
16         /// 加上匿名方法,感觉挺有意思了
17         /// 加上Lambda
18         /// <param name="param2"></param>
19         /// <returns></returns>
20         delegate double processDelegate(double param1 ,double param2);//委托的声明
21
22
23         //static double multiply(double param1, double param2)
24         //{ return param1 * param2; }
25         //static double divide(double param1, double param2)
26         //{ return param1 / param2; }
27         //把上面两个方法给匿名了
28
29         static void Main(string[] args)
30         {
31             processDelegate process;
32             double d1 = 3;
33             double d2 = 2;
34             int i1;
35             input: Console.WriteLine("输入一个数字用来判断");
36
37              try
38             {
39                 i1 = Convert.ToInt32(Console.ReadLine());
40                 Console.WriteLine("输入的数字是:{0}",i1.ToString());
41             }
42             catch (Exception e)
43             {
44
45                 // throw ;
46                 Console.WriteLine(e.Message+"请在提示后重新输入");
47
48                 goto input;
49             }
50
51
52             if (i1>=0&&i1<=5)
53             {
54                 Console.WriteLine("相除");
55                 //process = new processDelegate(divide);//匿名了
56                 process = delegate (double param1, double param2)//匿名方法
57                     { return param1 / param2; };
58
59
60             }
61             else
62             {
63                 Console.WriteLine("相乘");
64                 //process = new processDelegate(multiply);//匿名了
65
66                 // process =  (p1, p2) => p1 * p2;//Lambda表达式,现在更简单了
67                 //可以在Lambda中写更多的方法,类似上面的匿名方法
68                 process = (double p1, double p2) =>
69                   {
70                       Console.WriteLine("我是表达式");
71                       return p1 * p2;
72                   };//注意这里的这个符号哦,这个是表达式的格式规范
73             }
74
75             Console.WriteLine(process(d1,d2));
76             Console.ReadLine();
77         }
78     }
79 }

委托和一个匿名方法一个Lambda表达式

01:50:11 2019-02-09

回头找找Lambda和集合泛型的用法

原文地址:https://www.cnblogs.com/myjobok/p/10357063.html

时间: 2024-11-12 16:19:15

委托,匿名方法,Lambda表达式的相关文章

委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件

1. 委托 From: http://www.cnblogs.com/daxnet/archive/2008/11/08/1687014.html 类是对象的抽象,而委托则可以看成是函数的抽象.一个委托代表了具有相同参数列表和返回值的所有函数. [csharp] view plaincopy class Program { delegate int CalculateDelegate(int a, int b); int add(int a, int b) { return a + b; } s

18、(番外)匿名方法+lambda表达式

概念了解: 1.什么是匿名委托(匿名方法的简单介绍.为什么要用匿名方法) 2.匿名方法的[拉姆达表达式]方法定义 3.匿名方法的调用(匿名方法的参数传递.使用过程中需要注意什么) 什么是匿名方法? 匿名方法是C#2.0引入的一个新特性,它允许开发者声明自己的函数代码而无须使用委托函数. C#为委托提供一种机制,可以为委托定义匿名方法,匿名方法没有名称,编译器会定指定一个名称,匿名方法中不能使用跳转语句跳转到该匿名方法的外部,也不能跳转到该方法的内部.也不能在匿名方法外部使用的ref和out参数.

委托delegate 泛型委托action&lt;&gt; 返回值泛型委托Func&lt;&gt; 匿名方法 lambda表达式 的理解

1.使用简单委托 namespace 简单委托 { class Program { //委托方法签名 delegate void MyBookDel(int a); //定义委托 static MyBookDel myBookDel; //普通方法 public static void MathBook(int a) { Console.WriteLine("我是数学书" + a); } static void Main(string[] args) { myBookDel += Ma

C++实现委托机制(三)——lambda表达式封装

C++实现委托机制(三)——lambda表达式封装1.引言:              其实原本没打算写这一章的,不过最后想了想,嗯还是把lambda表达式也一并封装进去,让这个委托也适应lambda表达式的注册.不过在之前还是需要先了解lambda表达式. 2.lambda表达式:              如果大家还有对lambda表达式不了解的可以先去了解lambda表达式的基本语法和用法.这里我们只讲跟lambda表达式封装相关的知识.我们先来看看使用lambda表达式的好处吧:1.la

Cocos2d-x v3.0 新的事件调度方法 lambda表达式的使用

欢迎添? Cocos2d-x 交流群: 193411763 转载请注明原文出处:http://blog.csdn.net/u012945598/article/details/24603251 Cocos 2d-x 3.0 版本号中引入了C++ 11的特性.当中就包括了回调函中使用Lambda对象. 以下我们来看一段TestCpp中的代码: 在上图的触摸事件的回调函数中,共使用了三次Lambda表达式: [ ](Touch * touch,Event * event){ }; 以下我们就来介绍一

C#委托------匿名方法

namespace out_ref { //委托匿名方法 public delegate void Myadd(); class Program { static void Main(string[] args) { Say(delegate() { Console.WriteLine("哈哈,就是这么帅!"); }); Console.ReadKey(); } static void Say(Myadd myadd) { myadd(); } } } //委托匿名方法 求两个数之和

【Unity|C#】基础篇(9)——匿名函数/Lambda表达式

[学习资料] > 在线文档 官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/ 菜鸟教程(高级教程):https://www.runoob.com/csharp/csharp-tutorial.html > 视频教程 腾讯学院.Siki学院         > 书籍 <C#图解教程>(第13章):https://www.cnblogs.com/moonache/p/7687551.html [学习内容] > 菜鸟教程

Python匿名函数——lambda表达式

如果要定义的函数很简单,一个return语句就能搞定,可以使用lambda表达式来定义, lambda表达式的语法如下: lambda parameters: expression lambda表达式并不包含return语句,凡是使用函数作为参数或返回值的地方,都可以使用lambda表达式,lambda函数的好处有: 简便,顺手 可以不给函数起名字,某些不需要重用该函数的地方,实质上不需要给函数想一个名字 下面的例1将lambda表达式定义的函数作为内置函数filter的参数, 例1. 将lam

委托匿名方法

30天C#基础巩固----Lambda表达式

     这几天有点不在状态,每一次自己很想认真的学习,写点东西的时候都会被各种小事情耽误,执行力太差.所以自己反思了下最近的学习情况,对于基础的知识,可以从书中和视频中学习到,自己还是需要注意下关于自己以前做的项目中的一些知识点,那些才是HR提问的关键所在.今天都6.4号了,时间过的真是快呀,学校7.18左右放假,自己打算去西安看看,能不能找到一个实习工作,不行的话只能等到大四的第一学期去走校招.可以我们大四的第一学期还有很多课,真不知道老师是如何想的.所以在这还剩不到快2个月的时间里,把自己