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(). 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章