也就是实现依赖于抽象,而抽象不依赖于具体实现, 更具比较的应该是面向接口与面向抽象对象,我的体会是面向接口更加灵活,但 实现时候,稍微 有些代码冗余,而面向抽象可以结合面向接口,先定义接口, 再定义抽象类,在抽象类中处理一些公共逻辑,再实现具体实现类.面向对象是 对复杂问题的分解.面 向方面的编程是一种新概念,它解决了很多面向对象无 法解决的
问题,比如面向对象技术只能对业务相关的代码模块化,而无法对和业
务无关的代码模块化.而面向 方面正是解决这一问题的方案,它的关键思想是" 将应用程序中的商业逻辑与对其提供支持的通用服务进行分离". 有什么区别? 2) 什么是 Interface?它与 Abstract Class 有什么区别? ? 接口(Interface)是用来定义行为规范的,不会有具体实现,而抽象类除定义行 为规范外,可以有部分实现,但一个类能实现多个接口,但只能继承一个父类 什么是反射? 3) 什么是反射 程序集包含模块,而模块又包括类型,类型下有成员,反射就是管理程序集,模 块,类型的对象,它能够动态的创建类型的实例,设置现有对象的类型或者获取 现有对象的类型,能调用类型的方法和访问类型的字段属性.它是在运行时创建 和使用类型实例 4) 使用 ASMX 的 XML Web 服务与使用 SOAP 的.
NET Remoting 的区 别? Web 服务使用的消息机制,而 Remoting 采用的 RPC. Web Service 能用于 不同平台,不同语言,Remoting 只适用于.Net.效率上 Remoting 高于 Xml Web Service 表示的吗? 5) 类型系统是由 XMLSchema 表示的吗?CLS
是 XMLSchema 表示的 吗? 不清楚 从概念上阐述前期绑定( 6) 从概念上阐述前期绑定(early-binding)和后期绑定(late-binding) )和后期绑定 ) 的区别? 的区别 这个就像是强弱类型的比较相似, 前期绑定是在编译的时候就确定了要绑定的数 据,而后期绑定是在运行的时候才填充数据.所以前期绑定如果失败,会在编译 时报编译错误,而后期绑定失败只有在运行时的时候才发生 算静态引用还是动态引用? 7) 调用 Assembly.Load 算静态引用还是动态引用? 动态 8) 何时使用 Assembly.LoadFrom?何时使用 Assembly.LoadFile? ? ? 呵呵,这个比较有意思,相比 LoadFile,LoadFrom 则显得不地道,因为它娶媳 妇的时候,是让人家穿上嫁妆,坐上马车,还得带着人家的妹妹来,:)用它加 载的是程序集, 这就要求同时将此程序集所依赖的
程序集加载进来. LoadFile 而 就地道的多,它是加载程序集文件的内容,只将传入参数的文件加载,不考虑程 序集依赖,但如果有相同实现,但位置不同的文件用 LoadFrom 是不能同时加
载进来的,而 LoadFile 却可以.由于 LoadFile 加载的是文件,所以调用它之 后,可能因为缺少必要的依赖造成无法被执行. 9) 什么叫 Assembly Qualified Name?它是一个文件名吗?它有什么不 ?它是一个文件名吗? 同? 它不是一个文件名,相比文件名,Assembly Qualified Name(程序集限定名 称),更能确定一个程序集,它包含文件名,但同时包含版本,公钥,和区域. 因为同样一个名称的文件可能有不同的版本和区域,此时单独靠文件名称,可能 会造成不能确定程序集的正确性. 10) Assembly.Load("foo.dll"); 这句话是否正确? 这句话是否正确? 错误,正确的应该是 Assembly.Load("foo"); 或者 Assembly.LoadFrom("foo.dll"); (多谢 Tristan(Guozhijian)的提示更正) 有什么不同? 11) 做强签名的 assembly 与不做强签名的 assembly 有什么不同? 强签名的程序集可以做成 com,而不做强签名的就不行,同样强签名程序集可 以安装到 GAC 中,而不做强签名的确不能. 12) DateTime 是否可以为 null? 不能,因为其为 Struct 类型,而结构属于值类型,值类型不能为 null,只有引用 类型才能被赋值 null 13) 什么叫 JIT?什么是 NGEN?它们分别有什么限制和好处? ? ?它们分别有什么限制和好处? Just In Time 及时编译,它是在程序第一次运行的时