tnblog
首页
视频
资源
登录

委托,事件,lamdba委托语句

4778人阅读 2019/10/24 16:52 总访问:400314 评论:0 收藏:0 手机
分类: Mvc EF框架

C#委托与lamdba简介

?委托:


l   什么委托:

   本质是方法指针

l   委托的作用:

作用:进行方法传递,方法可以当作一个参数进行传递

    C#里边要传递方法需要借助委托


l   使用委托一般的步骤:

1:定义委托

   Public delegate 返回值方法名称(参数);

2:委托可以关联方法

3:执行委托,就相当于执行方法


?系统委托


作用:简化委托的定义,系统已经定义好,使用的时候直接使用,不需要重复定义

l   系统委托的主要分类

Action:无返回值,有0-16个参数

Func:有返回值,有0-16个参数

?Lamdba表达式

l   作用:

lamdba表达式可以简化方法的定义

l   语法:

   (方法参数)=>{方法体};

   例如:无参无返回值的lamdba表达式

()=>{};

      例如:一个参数无返回值

      (a)=>{};

      例如:一个参数一个返回值

      (a)=>{return a*a};

     例如2个参数1个返回值

      (a,b)=>{return a+b};

     

?事件


事件和委托的区别?

事件是不是一种委托?

事件是一种特殊的委托实例,其实就是在委托的前面加上一个event关键字

加上了event后就会出现一个闪电的标识,闪电的标识就表示一个事件

事件是一种标准

几种做法都可以做,但是事件用在这里更标准一点

事件是有限制的委托

event,限制了委托的使用

1:它只能+=或者-=

2:要执行这个委托在外面不能执行,无法破坏代码的封装性

加不加event,对我们正常使用没有什么影响

事件也是传递的一个方法

 事件(一种特殊的委托)


  事件的定义需要event修饰,委托不需要
     

  1.   public event Action interval;
  2.        public void Start( int timespan)
  3.        {
  4.            while (true)
  5.            {
  6.                if (interval != null)
  7.                {
  8.                    interval();
  9.                    System.Threading.Thread.Sleep(timespan);
  10.                }
  11.            }
  12.        }

?系统委托
         

  1.    Predicate<int> pre = (a) => { return false; };   //只是bool类型
  2.        Comparison<int> comp = (a, b) => { return 1; };   //比较:需2个参数
  3.             Func<intbool> func = (a) => { return false; };   //有返回值
  4.             Action<int> action = (a) => { Console.WriteLine(); };   //无返回值
  5.       //定义一个无参无返回值的委托
  6.         public delegate void DEL_Way();
  7.         //定义一个有一个参数无返回值的委托
  8.         public delegate void DEL_Squer(int a);
  9.         //定义一个有2个参数有返回值的委托
  10.         public delegate int DEL_Add(int a, int b);

        

?Lamdba 表达式
         

  1.   //语法:(方法参数)=>{方法体};
  2.             //无参无返回值的lamdba表达式
  3.             //Action action = () => { Console.WriteLine("Hello lamdba"); };
  4.             //action();
  5.             //1个参数无返回值的lamdba表达式
  6.             //Action<int> action = (a) => { Console.WriteLine(a * a); };
  7.             //action(5);
  8.             //1个参数1个返回值的lamdba表达式
  9.             //Func<int, int> func = (a) => {return   2 * a; };
  10.             //int result = func(7);
  11.             //Console.WriteLine(result);
  12.             //2个参数1个返回值的lamdba表达式
  13.             //Func<int, int, int> func = (a, b) => { return 2 * a + b; };
  14.             //int result = func(7,5);
  15.             //Console.WriteLine(result);



           //事件要用+=或-=链接,委托则不用
         

  1.  MyTimer mytime = new MyTimer();
  2.           //   mytime.interval = mytime_interval;
  3.           mytime.interval += mytime_interval1;
  4.        //   mytime.interval -= mytime_interval;
  5.           mytime.interval += mytime_interval2;
  6.        
  7.           mytime.Start(1000);
  8.             Console.ReadLine();
  9.         }
  10.         static void mytime_interval2()
  11.         {
  12.             Console.WriteLine("八月十五中秋佳节");
  13.         }
  14.         static void mytime_interval1()
  15.         {
  16.             Console.WriteLine("10,1日举国同庆");
  17.         }


小结:以上是本人对委托和事件知识点的分析归纳,希望对你有所帮助...

看不懂的可以留言问我哦

评价

JavaScript中的事件委托

什么是事件委托事件委托在JavaScript中是非常常见的,它主要用于对某个元素中的子元素的冒泡事件进行监听。JavaScript高级...

C委托事件

1.什么是委托?  委托在C#里的意义和在现实里差不多,从字面意思理解即可。举个例子:领导委托小张去传递个文件,这就是...

谈谈对事件委托的理解

对于c#的程序员来说,事件和委托可能是一道坎,过去的人觉得很简单,没过去的人觉得这个堵得慌 ,每次用着都很难受。本人就...

Action与Func的用法-----委托

Action:运用于没有返回值有参可以进行在方法里面进行有参传值。 3.实例Func:1.主要运用于有参有返回值Action于Funcye通过...

C委托_Action和Func (方法可以当作一个参数传递)

大家好,好久不见哦!前段时间因为忘记了帐号了没有更新了哈哈!今天普及一下自己学到的新花样,在C#里面方法居然可以当参...

C委托与lamdba表达式入门以及Lamdba自己实现SelectMany等

?委托:l 什么委托: 本质是方法指针l 委托的作用: 作用:进行方法传递,方法可以当作一个参数进行传递,C#里边要传递...

根据委托和lamdba表达式扩展方法

lamdba表达式ForEach扩展方法:public static void GetForEach&lt;T&gt;(this IEnumerable&lt;T&gt; list, Action&lt;T&gt;...

事件委托的区别

事件是一种特殊的委托实例,其实就是在委托的前面加上一个event关键字加上了event后就会出现一个闪电的标识,闪电的标识就...

委托、系统委托、lamdba表达式

委托:本质是方法指针&gt;作用:进行方法传递,方法可以当作一个参数进行传递与泛型作比较:泛型是把一个类型当作参数传递C...

委托的介绍

委托:什么是委托: 委托的本质是方法指针,可以指向一个方法 委托的作用: 传递方法 基本用法: 定义委托:...

系统委托和lamdba表达式

系统委托什么是系统委托系统预先定义好的委托就叫系统委托系统委托的作用 简化使用委托,使用委托的时候不需要重复定义,直...

Js使用委托

定义//定义一个委托的方法,如果有参数可以success(“在这里添加参数名”); varupdate=function(success){ success(); }...

C 委托

C# Func&lt;&gt;委托委托是一种类型,由关键字delegate声明。确切的说,委托是一种可用于封装命名或者匿名方法的引用类型。...

css弹性盒子flex布局

css弹性盒子由于版本不同浏览器问题造成了一些不同的写法display:flexbox;在google浏览器中如果使用下面的写法就不行displa...

可输入下拉文本框据输入动态加载数据 jquery-editable-select

用到一个jquery-editable-select的控件github地址:https://github.com/indrimuska/jquery-editable-select这个插件的原理是...
你之所以觉得时间一年比一年过得快,是因为时间对你一年比一年重要。
排名
13
文章
64
粉丝
20
评论
30
MUI框架页面间的传值指针
XingDy姐 : 不错哦
MUI框架页面间的传值指针
剑轩 : 接口的真实地址可以用xx/yy什么的代替哦,真实地址还是隐藏一下好
.NET EF 用户按钮权限
YOU : 可以,在写文章的时候,有需要写代码的地方,可以选择编辑器上的代...
.NET EF 用户按钮权限
剑轩 : 哈哈哈哈,你这个追女生的逻辑
EF三种模式解析
剑轩 : 好文采!
重要sql语句和linq,lamdba分组条件查询语句
剑轩 : 开头那句诗句写得很好哇!
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术