第五章:代理
代理实现的是象c++等语言的指针功能,不同于函数指针,代理是一种面向对象.安全类型的.代理事派生于公共基类(system)的一种参考类型,方法被压入一个代理中,对于实例方法被称为实例的组成实体或关于实例的方法,而静态方法,被称为类的组成实体或类方法.代理的强大功能是它可以自动的匹配方法,而不管其类型. 【程序编程相关:Delphi程序设计界面的动态调整】 【推荐阅读:利用HOOK建立鼠标增强程序】 【扩展信息:在Delphi中定义自己图标的消息框】写一个代理包括三个步骤:
写代理.实例化.调用.
代理的声明使用以下语法: delegate void simpledelegate();实例化一个代理
class test { static void f() { system.console.writeline("hello world"); } static void main() { simpledelegate d = new simpledelegate(f);//将方法压入 d();//通过代理; f();//不通过代理; } } 最后让我们调用她void multicall(simpledelegate d, int count) {
for (int i = 0; i < count; i++) d(); } }我们可以看到对于方法的调用是通过代理来完成的,调用时并不需要知道被调用她的类型.代理在我看来好比是对象要一件事她不直接地调用这个方法,而是通过一个中间人去调用她.
下面就代理的强大功能进行详细介绍:首先然我们实现一个这样的功能,考虑一下该如何用指向基类的对象调用子类的成员函数.... 下一页