什么是Interface?它与Abstract Class有什么区别?
接口(Interface)是用来定义行为规范的,不会有具体实现,而抽象类除定义行为规范外,可以有部分实现,但一个类能实现多个接口,但只能继承一个父类
前期绑定(early-binding)和后期绑定(late-binding)?
如同强弱类型 在于是在编译时确定数据还是在运行时确定数据
Assembly.Load("foo.dll"); 这句话是否正确?
错误,正确的应该是Assembly.Load("foo"); 或者Assembly.LoadFrom("foo.dll");
DateTime是否可以为null?
不能,因为其为Struct类型,而结构属于值类型(如int double bool),值类型不能为null,只有引用类型才能被赋值null
Finalize()和Dispose()之间的区别?
Finalize()用于隐式释放资源,Dispose()用于显示释放资源 (Finalize()的确相当于C++中的析构函数
Debug Build和Release Build的区别,是否会有明显的速度变化?请说明理由。
Debug会产生pdb文件,release不会。Debug用于开发时的调试,不能要于部署,而release用于部署.debug编译一些特殊代码,比如#IFDEBUG Debug.Write等,而Release则会将那些特殊标记省略
为什么不提倡catch(Exception)?
原因可能有两点:1)try..catch在出现异常的时候影响性能 2)应该捕获更具体得异常,比如IOExeception,OutOfMemoryException
等
a.Equals(b)和a == b一样吗?
不一样。多数情况下,a.Equals(b)表示a与b一致, a==b表示a与b的值相等 。也可以有具体重载
在.NET中如何实现深拷贝(deep copy)?
实现IClonable接口
IClonable 方法是实现深度复制的接口,实现它应该能深度复制一个对象出来。深度复制的特征的调用对象的构造方法,创建新的对象,包括创建对象中嵌套的引用对象的新实 例。而Shadow复制则不同,是浅表复制,不重新创建新实例。浅表复制的实现是Object.MemberWiseClone().