近两天学的都是面向对象方面的东西,感觉跟结构化编程相差甚远,写代码的时候也优先考虑的是结构化的思想,所以这两天的学习会有些吃力,并不是知识点的理解上,而是实际写代码如何去应用,而且老桂也没有给一些特别有针对性的作业,现在还是一知半解吧,不过知识点必须要都记牢,长期积累总是有用的
今天学习了委托,事件,类和接口.委托这东西,可以说是相当神奇的,一个小小的delegate
,包含了多种声明方法,可以new关键字,可以直接用方法名赋值,还包括匿名方法,无论是静态方法还是实例方法一概通吃.需要注意的一点是委托是一个类型,引用其他类的委托的方式就要跟方法不同了,第一次写的时候又new 又是放到方法中的,走了不少弯路.
委托的讲解重点是协变和逆变,老桂讲了3次.我的理解是这样,
1协变针对的是具有返回类型的方法,逆变是针对有某个类型参数的方法。
2看似协逆相对,其实本质都是类型转化,协变是子类型转化成父类型,没有问题。逆变是在方法中赋值的时候确实是子类型,但是在委托真正建立的时候,委托中是父类型,也就是子类型转化为父类型的过程,所以都是符合面向对象的思想的。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
事件则是在委托的基础上更为灵活的应用,方法是定义了供别人去用,而事件是定义了之后去调用别人的方法。事件的关键在于订户和发布者的关系,何时关联方法,何时执行事件,目前还没有理清事件的实质,还得继续琢磨..
转载于:https://blog.51cto.com/xrayx/361113