c#之委托总结

将委托说透(1),总结了一天,结果草稿箱忘记保存了。。。。。

对博客委托实现的分析:http://www.cnblogs.com/kirinboy/archive/2009/08/26/1554296.html

      首先构建log委托,创建UserService类中建立公共类log委托属性;接着建立无返回值的静态方法,也就是委托所调用的方法;在主函数中创建UserService实例,UserService实例.log委托属性‘-=’或者‘+=’委托方法

      总结委托就是接口的单一化形式,可以使用接口实现委托方法。单独创建一个类库建立静态类,实例化委托接口,通过委托调用类库静态类。该方法的优势是将大量实现方法单独创建,然后使用‘+=’或者‘-=’调用。

开始委托说透(2)

.net强大的编译器和CLR掩盖了委托内部实现的复杂性

打开Reflector反编译Log委托,尽管继承System

委托链  (委托是一个类,可以清晰的看出Log-MulticastDelegate-Delegate这种继承机制。委托必须桑踹鞥delegate关键字声明,编译器才会为我们自动生成继承代码)

标识回调方法的指针,构建一个委托链指向一个委托数组,委托刚开始构建时设置为null

委托数组为空则不是委托链,不为空时,依次执行,返回值是最后一个委托的返回值。

lambda表达式与递归函数的随笔

概念:不动点组合子(高阶函数,匿名函数的递归,非递归的lambda抽象)

(f,x)=>x<=1?1:x*f(f,x-1)        //f表示匿名函数

lambda构建不容易构建递归函数,伪递归:看上去像递归,但其实不是递归

函数式链表快速排序:

定义递归的<ga,<a,x>>c#可以在,签名分析法

haskell简化函数的表达式,改变左结合的函数,将其转为右函数,其中X是元素类型,XS是另外一个链表

局部作用域绑定的变量或者函数,类型并不是任意的,必须是一个函数能够接收Y(f)作为参数

求阶乘的函数Dim fact = Y(Function(self) Function(n) If(n = 01, n * self(n - 1)))


为事件处理程序(委托)的名称添加EventHandler后缀。

观察者模式:分为观察者与被观察者,其中观察者是用户界面,而业务数据时观察者对象。当业务数据发生变化时,

页面就会做出相应的响应,并做出这样的响应,只需要重新构建一个界面,业务数据不需要变化。





  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值