所以尽量不要使用反射进行编程,对于打算编写一个动态构造类型(晚绑定)的应用程序,可以采取以下的几种方式进行代替:1、通过类的继承关系。让该类型从一个编译时可知的基础类型派生出来,在运行时生成该类 型的一个实例,将对其的引用放到其基础类型的一个变量中,然后调用该基础类型的虚方法。
 
2、通过接口实现。在运行时,构建该类型的一个实例,将对其的引用放到其接口类型的一个变量中,然后调用该接口定义的虚方法。
 
3、通过委托实现。让该类型实现一个方法,其名称和原型都与一个在编译时就已知的委托相符。
在运行时先构造该类型的实例,然后在用该方法的对象及名称构造出该委托的实例,接着通过委托调用你想要的方法。这个方法相对与前面两个方法所作的工作要多一些,效率更低一些。   请问红色标志中,编译时可知和设计时可知是否一样呢,是否在有编译时可知而设计时隐藏(不显示)的基础类型。

解决方案 »

  1.   

    我的意思是说,在我们在.NET设计环境下,像BUTTON,FORM这些基础类型,我们不是一样可以写派生类(myform,myButton),为什么一定要说是从编译时可知的基础类型派生出来(我在.NET设计环境下还没到编译那一步,怎么能说是编译时呢).
      

  2.   

    http://www.cnblogs.com/focusonnet/archive/2009/04/17/1438013.html