New的幾個問題 詳解 --讀你必須知道的.NET筆記

lishan發表於2019-05-11

New的幾個問題:

(1)       new 一個class物件和new一個struct或者enum有什麼不同

(2)       new .NET中有幾個用途

(3)       new 運算子 ,可以過載嗎?

(4)       泛型中,new有什麼作用

(5)       New 一個繼承下來的方法和override一個繼承方法有什麼區別

(6)       Int I int i=new int() 有什麼不同

 

(1)     問題答案:

IL程式碼:

IL程式碼中可以得到結論:

1.       new 一個class時,new完成了以下2個方面的內容:一是呼叫newobj命令來為例項在託管堆中分配記憶體;二是呼叫建構函式來實現物件初始化

2.       new 一個struct時,new運算子用於呼叫其建構函式,完成例項的初始化

3.       new 一個int ,new 運算子用於初始化其值為0

4.       當然值型別與引用型別的地址分配這裡就不說了

5.       這裡回答(3)問題 new運算子不可以過載

6.       New 分配記憶體失敗,將引發outofmemoryexception異常

2)問題答案:1.作為運算子,用於建立物件和呼叫建構函式

               2.作為修飾符,用於向基類成員隱藏繼承成員

               3.作為約束,用於泛型宣告中約束可能用作型別引數的引數型別

               4.使用new實現多型

(4)問題答案:約束的作用,比如:class Test<T> where T:new()

(5)問題答案:new 用於實現建立一個新的成員,同時隱藏基類的同名成員;而override用於實現對基類成員的擴充套件

(6)問題答案:int I;只是宣告瞭一個變數,new 一個int ,new 運算子用於初始化其值為0

 思維導航:


請喊我大龍哥最後編輯於:3年前

內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。

相關文章