C中什麼情況下要使用new關鍵字?這問題深奧額

2022-01-17 01:59:15 字數 4147 閱讀 8048

1樓:匿名使用者

請lz看看這個: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 38 9 }

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

2 36 7 }

8 但是,因為欄位 x 不是通過類似名隱藏的,所以不會影響該欄位。  通過繼承隱藏名稱採用下列形式之一:  1.

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

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

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

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

2樓:匿名使用者

哇,樓上夠清楚了。是靜態的就不需要new ,也就是前面有public 修飾符的。同類裡面的也不需要 new 。

3樓:匿名使用者

static 修飾的才是靜態的,。。public共有的 private私有的 這些 是訪問許可權,

4樓:匿名使用者

主要是看靜態和非靜態方法,

5樓:匿名使用者

1樓的那位,說的很具體呀!一般什麼情況都說到了 !!

c#中new關鍵字的用法及理解

6樓:

new public void show()中的new是隱藏基類show作用。

在子類show中寫一個和基類show一樣名字的非虛方法,會讓基類中的函式被隱藏,編譯後會提示要求使用new關鍵字來顯示的隱藏基類的方法。

c#中new關鍵字的用法

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

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

3.new 約束 用於在泛型宣告中約束可能用作型別引數的引數的型別。

擴充套件資料

1.方法的過載

過載:指的是同一個類中有兩個或多個名字相同但是引數不同的方法,(注:返回值不能區別函式是否過載),過載沒有關鍵字。

作用:允許你以相同的名稱不同的引數來呼叫多個方法

2.方法的重寫

重寫:是指子類對父類中虛擬函式或抽象函式的「覆蓋」。

特點:(1)重寫的父類中的方法必須用 virtual、abstract 或 override 修飾,且不能重寫非虛方法或靜態方法。

(2)override的方法和virtual的方法必須具有相同的訪問級別修飾符。

3.方法的隱藏(new)

隱藏:在子類中寫一個和基類一樣名字(引數不同也算)的非虛方法,會讓基類中的函式被隱藏,編譯後會提示要求使用new關鍵字來顯示的隱藏基類的方法。

參考資料

https://baike.baidu.com/item/過載

網頁連結

7樓:

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

在c#中定義一個虛方法需要使用的關鍵字是什麼?

8樓:匿名使用者

子類可以對父類中的虛方法進行重寫,虛方法是多型特性的一種體現c#中的虛方法使用virtual關鍵字定義public virtual void eat();

override關鍵字作用是對父類的virtual方法進行重寫public override void eat();

**舉例:

using system;

using system.collections;

public class animal

public virtual void eat()}public class dog:animal}public class cat:animal}public class panda:

animal}public class mainfun}

c#中 屬性前面加 new 關鍵字是什麼意思啊

9樓:七終多

屬性器 例如一個私有變數 無法被外界訪問 你用一個屬性器來控制某個變數 只讀 可寫 或者 既可讀又可寫

10樓:匿名使用者

你這個屬性以前定義過,為了防止呼叫時產生歧義,就用new關鍵字重新定義,以後使用的就是這個新定義的屬性,

11樓:見證時光

覆蓋父類中同名的屬性

c#中例項化的時候,new關鍵字用於建立物件和呼叫建構函式。呼叫建構函式是什麼意思?

12樓:飛天殺手

c#中方法就是函式,而建構函式就是與類名同名的方法,比如

public class test

}呼叫的時候就要 test  t =  new test();  respose.write(t.isflag);

13樓:叫什麼呢嫩

建構函式就是為了初始化類內部的成員變數,新建一個類的時候,會有預設的建構函式,而且是隱藏的,當你手工建立一個建構函式的時候,那預設的建構函式將不復存在

14樓:

對物件的內部成員進行初始化!

c#語法物件new關鍵字

15樓:雲中翯

這不是物件,是字元引用。c#是使用虛擬機器的。程式構成(堆和棧)。

堆中放物件。棧中放字面值。堆由垃圾**機制**,棧由程式執行完釋放。

堆由程式設計師分配,如物件。棧中資料由程式自己分配,程式設計師不能分配,由編譯器編譯後,執行時執行時分配。你自己看看他們的雜湊值就知道他們是不是同一個物件。

string a = "abc";string b = "abc"; a==b;

16樓:匿名使用者

是間接自動使用new 建立的

這種寫法是 根據習慣而專門寫的一種自動建立物件並賦值的寫法

17樓:我為人人服務隊

簡單解析:

當分配一個新物件時候用到:new 關鍵字

string 是一個字串變數,string在c#裡不算作物件。

在物理中,什麼情況下用sin,什麼情況下用cos

根據幾何關係和正交分解法則,在物理中,合向量f作為斜邊,f1作為對邊用f1 fsina,f2作為臨邊用f2 fcosa sin cos tan分別在什麼情況下使用 sin cos tan 都屬於三角bai函式。所du以用再在直角zhi三角形的問題中,dao涉及的幾個條件有 角的內鄰容邊 角的對邊 三...

在什麼情況下需要使用變頻恆壓供水裝置

變頻恆壓供水裝置一般適用在用水量非常大情況下,像我們這裡一個廠區就是生產用水,用水量非常大,一天可以用400來噸,而且不能停水,之前也採用過很多專業供水廠家的建議,一直都不能滿足我們這裡用水要求,要們就是裝置用的過程中停機出現故障,這嚴重影響了我們生產效率,直到去年選擇了一套興崛變頻恆壓供水裝置,才...

什麼情況下使用抽象類,什麼情況下使用介面

能使用抽象類就用抽象類 在不能使用類的時候才使用介面 畢竟你只能繼承一個介面嘛 每個類只能extends一個父類,但是能implements很多介面。什麼情況下使用抽象類,什麼情況下使用介面 介面和抽象類,都可以看做一個抽象的型別,而其他的類都可以看做是一個具體類 介面裡面方法都是沒有實現的,抽象類...