C#的一些基础知识补习 二

什么是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 BuildRelease Build的区别,是否会有明显的速度变化?请说明理由。

Debug会产生pdb文件,release不会。Debug用于开发时的调试,不能要于部署,而release用于部署.debug编译一些特殊代码,比如#IFDEBUG Debug.Write等,而Release则会将那些特殊标记省略

 

为什么不提倡catch(Exception)

原因可能有两点:1try..catch在出现异常的时候影响性能 2)应该捕获更具体得异常,比如IOExeception,OutOfMemoryException

 

a.Equals(b)a == b一样吗?

不一样。多数情况下,a.Equals(b)表示ab一致, a==b表示ab的值相等 。也可以有具体重载

 

.NET中如何实现深拷贝(deep copy)?

实现IClonable接口

IClonable 方法是实现深度复制的接口,实现它应该能深度复制一个对象出来。深度复制的特征的调用对象的构造方法,创建新的对象,包括创建对象中嵌套的引用对象的新实 例。而Shadow复制则不同,是浅表复制,不重新创建新实例。浅表复制的实现是Object.MemberWiseClone(). 

 

 

你可能感兴趣的:(exception,struct,C#,Class,Build,interface)