C#關鍵字總結

來源:互聯網
上載者:User

C#關鍵字:

abstract 

可以和類、方法、屬性、索引器及事件一起使用,標識一個可以擴充但不能被實體化的、必須被實現的類或方法。

as               

一個轉換操作符,如果轉換失敗,就返回null。 

Base

用於訪問被衍生類別或構造中的同名成員隱藏的基類成員。

catch         

定義一個代碼塊,在特定類型異常拋出時,執行塊內代碼。參見try和finally。

checked        

既是操作符又是語句。確保編譯器運行時,檢查整數類型操作或轉換時出現的溢出。

const            

標識一個可在編譯時間計算出來的變數值,即一經指派不可修改的值。

delegate       

指定一個聲明為一種委託類型。委託把方法封裝為可調用實體,能在委託實體中調用。

enum          

表示一個已命名常量群集的實值型別。

event           

允許一個類或對象提供通知的成員,他必須是委託類型。

 

explicit         

一個定義使用者自訂轉換操作符的操作符,通常用來將內建類型轉換為使用者定義型別或反向操作。必須再轉換時調用顯示轉換操作符。

extern        

標識一個將在外部(通常不是c#語言)實現的方法。

finally          

定義一個代碼塊,在程式控制離開try代碼快後執行。參見try和catch。

 

fixed           

在一個代碼塊執行時,在固定記憶體位置為一個變數指派一個指標。

 

foreach        

用於遍曆一個群集的元素。

goto            

一個跳躍陳述式,將程式執行重新導向到一個標籤語句。

Implicit

一個操作符,定義一個使用者定義的轉換操作符。通常用來將預定義類型轉換為使用者定義型別或反向操作。隱式轉換操作符必須在轉換時使用。

interface     

將一個聲明指定為介面類型,即實作類別或構造必須遵循的合約。

internal       

一個存取修飾詞。

namespace  

定義一個邏輯組的類型和命名空間。

operator      

用來聲明或多載一個操作符。

out              

標識一個參數值會受影響的參數,但在傳入方法時,該參數無需先初始化。

params

聲明一個參數數組。如果使用,必須修改指定的最後一個參數。允許選擇性參數。

readonly       

標識一個變數的值在初始化後不可修改。

ref

標識一個參數值可能會受影響的參數。

sealed           

防止類型被派生,防止方法和property被覆載。

sizeof          

一個操作符,以byte為單位返回一個實值型別的長度。

stackalloc   

返回在堆上分配的一個記憶體塊的指標。

struct           

struct是一種實值型別,可以聲明常量、欄位、方法、property、索引器、操作符、構造器和內嵌類型。

throw         

拋出一個異常。

try                         

異常處理代碼塊的組成部分之一。try代碼塊包括可能會拋出異常的代碼。參閱catch和finally關鍵字。

typeof                   

一個操作符,返回傳入參數的類型。

unchecked

禁止溢出檢查。

unsafe 

標註包含指標操作的代碼塊、方法或類。

using                   

當用於命名空間時,using關鍵字允許訪問該命名空間中的類型, 而無需指定其全名。也用於定義finalization操作的範圍。

virtual                  

 一個方法修飾符,標識可被覆載的方法。

volatile                 

標識一個可被作業系統、某些硬體裝置或並發線程修改的attribute。

 

sealed 修飾符表示密封用於類時,表示該類不能再被繼承,不能和 abstract 同時使用,因為這兩個修飾符在含義上互斥用於方法和屬性時,表示該方法或屬性不能再被繼承,必須和 override 關鍵字一起使用,因為使用 sealed 修飾符的方法或屬性肯定是基類中相應的虛成員通常用於實現第三方類庫時不想被用戶端繼承,或用於沒有必要再繼承的類以防止濫用繼承造成階層體系混亂恰當的利用 sealed
修飾符也可以提高一定的運行效率,因為不用考慮繼承

abstract & virtual

abstract 修飾符可以和類、方法、屬性、索引器及事件一起使用。

在類聲明中使用 abstract 修飾符以指示類只能是其他類的基類。接下來描述了abstract的一些特性:不能執行個體化;可以包含抽象方法和抽象訪問器;不能用 sealed 修飾符修改抽象類別,意味著該類不能被繼承;從抽象類別派生的非抽象類別必須包括繼承的所有抽象方法和抽象訪問器的實現;

在方法或屬性聲明中使用 abstract 修飾符以指示此方法或屬性不包含實現等等。"abstract"可以修飾類、方法、屬性、索引器及事件

而看到virtual關鍵字的時候,產生了一個疑問:"virtual"關鍵字只能修飾方法和屬性,卻不能修飾類~但清楚記得老師講C++的時候有一個概念,叫虛基類。難道c#把virtual的這個特性去掉了?然後我到google找答案~看到了兩篇文章“c++虛基類”和“深入剖析c#繼承機制”,終於明白了原來是由於這兩者的繼承機制不同而決定的。c++允許多重繼承,而c#只允許衍生類別從一個類中繼承,由於多重繼承產生的二義性問題需要虛基類來解決,所以c++有虛基類的概念,而c#由於單繼承的原因不會產生繼承而帶來的二義性問題,

所以不需要virtual關鍵修飾類。




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.