C 的New關鍵字的幾種用法

2021-09-30 03:30:27 字數 1300 閱讀 2595

前段時間乙個朋友問到c#的new關鍵字有幾種用法,雖說在日常程式設計中經常用到這個小傢伙,但它到底有幾種用法還真沒有留意過,現將從網上總結出的資料記下以供同仁學習。

(1)new 運算子 用於建立物件和呼叫建構函式。

(2)new 修飾符 用於隱藏基類成員的繼承成員。

(3)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 修飾符修飾它。

請看下面的類:

1 public class myclass

2 3

8 9 }

10 在派生類中用 invoke 名稱宣告成員會隱藏基類中的 invoke 方法,即:

1 public class myderivedc : myclass

2 3

6 7 }

8 但是,因為字段 x 不是通過類似名隱藏的,所以不會影響該欄位。

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

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

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

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

4.在同一成員上同時使用 new 和 override 是錯誤的。

注意:在不隱藏繼承成員的宣告中使用 new 修飾符將生成警告。

示例在該例中,巢狀類 myclass 隱藏了基類中具有相同名稱的類。該例不僅說明了如何使用完全限定名訪問隱藏類成員,同時也說明了如何使用 new 修飾符消除警告訊息。

using system;

public class mybasec }

public class myderivedc : mybasec

輸出

C 的New關鍵字的幾種用法

前段時間乙個朋友問到c 的new關鍵字有幾種用法,雖說在日常程式設計中經常用到這個小傢伙,但它到底有幾種用法還真沒有留意過,現將從網上總結出的資料記下以供同仁學習。1 new 運算子 用於建立物件和呼叫建構函式。2 new 修飾符 用於隱藏基類成員的繼承成員。3 new 約束 用於在泛型宣告中約束可...

C 的new關鍵字的幾種用法

1.new 運算子用於建立物件和呼叫建構函式 test01 test new test01 new 運算子還可以用於建立值型別的預設建構函式 int i new int i被初始化為0,因為它是int型別的預設值。該語句等同於 int i 0 如果new運算子分配記憶體失敗,則它將引發outofme...

C 的New關鍵字有幾種用法

前段時間乙個朋友問到c 的new關鍵字有幾種用法,雖說在日常程式設計中經常用到這個小傢伙,但它到底有幾種用法還真沒有留意過,現將從網上總結出的資料記下以供同仁學習。1 new 運算子 用於建立物件和呼叫建構函式。2 new 修飾符 用於隱藏基類成員的繼承成員。3 new 約束 用於在泛型宣告中約束可...