委托,匿名和Lambda

委托实现来类型安全的回调方法。由于回调无处不在,所以委托无处不在,时间模型是建立在委托机制上,Lambda表达式本质上就是一种匿名委托。

委托的定义(委托并不等于方法):
你是编程的,你现在正在写一个ASP.NET网页,而JS是你不熟悉的,于是你委托你的一位同事来帮助你完成JS部分。这就是委托,把你所不能做的事情交给其他人去做。而怎么知道是哪个人去做呢?当然是要知道名字!而为了区别名字一样的不同人,因此,需要描述一个特征。
· public delegate string ProcessDelegate(string s1, string s2);

class Program
{
    static void Main(string[] args)
     {
        /*  调用方法  */
         ProcessDelegate pd = new ProcessDelegate(new Test().Process);
        Console.WriteLine(pd("Text1", "Text2"));
     }
 }

 public class Test
{
         /// <summary>
        /// 方法
       /// </summary>
      /// <param name="s1"></param>
     /// <param name="s2"></param>
    /// <returns></returns>
    public string Process(string s1,string s2)
   {
         return s1 + s2;
     }
 }·
 多播委托和委托链,以+=和-=操作符分别进行绑定和解除绑定的绑定。多播委托返回值一般为void,委托类型为非void类型

事件:事件是对委托的封装,从委托的示例中可知,在客户端可以随意对委托进行操作,一定程度上破坏来面向的对象的封装机制,因此时间实现来对委托的封装。

Lambda,匿名函数,事件的详解在之后再讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值