C new關鍵字小結

2021-04-02 00:52:22 字數 1954 閱讀 3636

c# 中,

new

關鍵字可用作運算子或修飾符。

new

運算子用於在堆上建立物件和呼叫建構函式。

new

修飾符用於隱藏基類成員的繼承成員。

new

運算子1.

用於建立物件和呼叫建構函式

例:class_test myclass= new class_test();

2.也用於為值型別呼叫預設的建構函式

例:int myint = new int();

myint

初始化為

0,它是

int

型別的預設值。該語句的效果等同於:

int myint = 0;

3.不能過載

new

運算子。

4.如果

new

運算子分配記憶體失敗,則它將引發

outofmemoryexception

異常。new

修飾符使用

new

修飾符顯式隱藏從基類繼承的成員。若要隱藏繼承的成員,請使用相同名稱在派生類中宣告該成員,並用

new

修飾符修飾它。

請看下面的類:

public class myclass

}在派生類中用

invoke

名稱宣告成員會隱藏基類中的

invoke

方法,即:

public class myderivedc : myclass

}但是,因為字段

x 不是通過類似名隱藏的,所以不會影響該欄位。

通過繼承隱藏名稱採用下列形式之一:

1.引入類或結構中的常數、指定、屬性或型別隱藏具有相同名稱的所有基類成員。

2.引入類或結構中的方法隱藏基類中具有相同名稱的屬性、欄位和型別。同時也隱藏具有相同簽名的所有基類方法。

3.引入類或結構中的索引器將隱藏具有相同名稱的所有基類索引器。

4.在同一成員上同時使用

new

和override

是錯誤的。

注意:在不隱藏繼承成員的宣告中使用

new

修飾符將生成警告。

示例在該例中,基類

mybasec

和派生類

myderivedc

使用相同的欄位名

x,從而隱藏了繼承欄位的值。該例說明了

new

修飾符的使用。同時也說明了如何使用完全限定名訪問基類的隱藏成員。

using system;

public class mybasec

public class myderivedc : mybasec }輸出

10055

22如果移除

new

修飾符,程式將繼續編譯和執行,但您會收到以下警告:

the keyword new is required on 'myderivedc.x' because it hides inherited member 'mybasec.x'.

如果巢狀型別正在隱藏另一種型別,如下例所示,也可以使用

new

修飾符修改此巢狀型別。

示例在該例中,巢狀類

myclass

隱藏了基類中具有相同名稱的類。該例不僅說明了如何使用完全限定名訪問隱藏類成員,同時也說明了如何使用

new

修飾符消除警告訊息。

using system;

public class mybasec

}public class myderivedc : mybasec

public static void

main

() }輸出

100200

本文參考《

msdn library – visual studio .net 2003

C new關鍵字用法

c 中的new用法總結 1.new operator 這是最常見的用法,如 class a a a new a 2.placement new 這個new僅在乙個已經分配好的記憶體指標上呼叫建構函式,因此會覆蓋原來的內容,如 a a1 new a a a2 new a1 a 那麼a2會覆蓋a1的值,...

C new關鍵字丟擲bad alloc

c new 關鍵字底層呼叫了malloc來分配記憶體,但是會出現申請記憶體失敗的情況。當new 申請記憶體失敗時,會丟擲bad alloc異常,那麼針對這種情況,我們有兩種處理方式。當new獲取記憶體失敗時,丟擲bad alloc異常,我們可以捕獲異常,但是這種方法非常繁瑣,我們在程式中可能會大量用...

關鍵字小結

在藍傑乙個月學習後,我們開班了,1015組,開班後上的第一節課是關鍵字,下面小結一下這節課的收穫。上完這節課後我發現原來平時敲的 裡這麼多關鍵字,我竟然不知道。1.訪問修飾符 private 私有的 public 公有的 protecte 受保護的 2.資料型別 void 空 byte 位元組型,8...