.net(c#)中的new關鍵字詳細介紹
1)new 運算符:用于創(chuàng)建對象和調用構造函數。這種大家都比較熟悉,沒什么好說的了。
2)new 修飾符:在用作修飾符時,new 關鍵字可以顯式隱藏從基類繼承的成員。
3)new 約束:用于在泛型聲明中約束可能用作類型參數的參數的類型。
new關鍵字在我們的程序中可謂是無時不刻在用到,那么new關鍵字都可以用在哪些地方呢?考慮以下幾個問題:
1、new一個class對象和new一個struct或者new一個enum有什么不同?
答:new一個class時,new完成2個內容:一是調用newobj命令為實例在托管堆中分配內存,二是調用構造函數實現對象初始化。
new一個struct時,new運算符用于調用其構造函數,完成實例的初始化。
2、new在.NET中除了創(chuàng)建對象實例外,還可以做什么?
答:new關鍵字:作為運算符可以創(chuàng)建對象和調用構造函數;
作為修飾符可以用于向基類成員隱藏繼承成員,實現派生類中隱藏基類的virtual方法,不能和override共存;
作為約束可以在泛型聲明中約束可能用作類型參數的參數類型,即new約束指定泛型類聲明中的任何類型參數都必須要有公共的無參構造函數;
使用new關鍵字實現多態(tài)。
3、new運算符可以重載嗎?
答:new運算符不可以重載。
4、泛型中new關鍵字的作用?
答:new運算符用于返回一個引用,指向系統(tǒng)分配的托管堆的內存地址,new分配內存失敗,將引發(fā)OutOfMemoryException異常。
5、new一個繼承下來的方法和override有什么區(qū)別?
答:new是隱藏基類方法,override是覆寫基類方法。如果要訪問new隱藏了的基類成員需要使用base關鍵字實現。
6、int i和int i = new int()有什么不同?
答:new一個int時,new運算符用于初始化其值為0,使構造函數完成更優(yōu)越的初始化操作。
通過繼承隱藏名稱采用下列形式之一:
•引入類或結構中的常數、指定、屬性或類型隱藏具有相同名稱的所有基類成員。
•引入類或結構中的方法隱藏基類中具有相同名稱的屬性、字段和類型。 同時也隱藏具有相同簽名的所有基類方法。
•引入類或結構中的索引器將隱藏具有相同名稱的所有基類索引器。
相關文章
C#使用Fleck實現創(chuàng)建WebSocket服務器
這篇文章主要為大家詳細介紹了C#如何使用Fleck實現創(chuàng)建WebSocket服務器,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-01-01
c#實現服務器性能監(jiān)控并發(fā)送郵件保存日志
這篇文章主要介紹了c#實現服務器性能監(jiān)控并發(fā)送郵件保存日志的示例,代碼分為客戶端和服務端,客戶端可安裝為本地服務形式啟動2014-01-01
C#開發(fā)WinForm清空DataGridView控件綁定的數據
本文詳細講解了C#開發(fā)WinForm清空DataGridView控件綁定數據的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03

