什麼是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().