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很多介面。什麼情況下使用抽象類,什麼情況下使用介面 介面和抽象類,都可以看做一個抽象的型別,而其他的類都可以看做是一個具體類 介面裡面方法都是沒有實現的,抽象類...