C#的常用關鍵字和預定義類型
C#是一種強類型的面向對象的程式設計語言,它提供了一些關鍵字和預定義類型來幫助開發者編寫高效、可讀和安全的代碼。本文将介紹C#中的一些常用的關鍵字和預定義類型,以及它們的作用和用法。
關鍵字
關鍵字是預定義的保留辨別符,對編譯器有特殊意義。除非前面有@字首,否則不能在程式中用作辨別符。例如,@if是有效辨別符,而if則不是,因為if是關鍵字1。
C#中有兩種類型的關鍵字:一般關鍵字和上下文關鍵字。一般關鍵字是C#程式任意部分中的保留辨別符,上下文關鍵字僅在一部分程式上下文中有特殊含義,可以在相應上下文範圍之外用作辨別符1。
一般關鍵字
以下是C#中的一般關鍵字1:
關鍵字 | 說明 |
abstract | 用于聲明抽象類或抽象成員 |
as | 用于執行引用類型或可空類型的安全轉換 |
base | 用于通路基類的成員 |
bool | 用于聲明布爾值類型 |
break | 用于終止循環或switch語句 |
byte | 用于聲明8位無符号整數類型 |
case | 用于标記switch語句中的分支 |
catch | 用于捕獲異常 |
char | 用于聲明16位Unicode字元類型 |
checked | 用于啟用整數算術運算和轉換的溢出檢查 |
class | 用于聲明類 |
const | 用于聲明常量 |
continue | 用于跳過循環的目前疊代 |
decimal | 用于聲明128位精确十進制值類型 |
default | 用于指定switch語句中的預設分支或指定泛型參數的預設限制 |
delegate | 用于聲明委托類型 |
do | 用于聲明後測試循環語句 |
double | 用于聲明64位浮點值類型 |
else | 用于指定if語句中的備選分支 |
enum | 用于聲明枚舉類型 |
event | 用于聲明事件 |
explicit | 用于聲明使用者定義的顯式轉換運算符或指定泛型參數的顯式限制 |
extern | 用于聲明外部方法 |
false | 用于表示布爾值false |
finally | 用于指定無論是否發生異常都要執行的代碼塊 |
fixed | 用于防止指針移動或修改被固定變量所引用的對象 |
float | 用于聲明32位浮點值類型,也稱為單精度浮點類型 |
for | 用于聲明前測試計數循環語句 |
foreach | 用于聲明周遊集合中每個元素的循環語句 |
goto | 用于無條件轉移到程式中指定位置的語句 |
if | 用于聲明條件語句 |
implicit | 用于聲明使用者定義的隐式轉換運算符或指定泛型參數的隐式限制 |
in | 用于指定泛型參數是逆變的、foreach語句中集合元素的别名或查詢表達式 |
關鍵字 | 說明 |
int | 用于聲明32位有符号整數類型 |
interface | 用于聲明接口 |
internal | 用于指定類型或成員的可通路性為目前程式集内部 |
is | 用于檢查對象是否與給定類型相容 |
lock | 用于擷取給定對象的互斥鎖,以便同步多線程通路 |
long | 用于聲明64位有符号整數類型 |
namespace | 用于聲明命名空間 |
new | 用于建立對象或委托的執行個體,或指定泛型參數的新限制 |
null | 用于表示空引用或可空值類型的無值狀态 |
object | 用于聲明通用引用類型,是所有類型的基類 |
operator | 用于聲明使用者定義的運算符 |
out | 用于指定參數是按引用傳遞的、泛型參數是協變的或查詢表達式的傳回值 |
override | 用于修改虛方法、屬性、索引器或事件的實作 |
params | 用于指定方法參數可以接受可變數量的實參 |
private | 用于指定類型或成員的可通路性為目前類或結構内部 |
protected | 用于指定類型或成員的可通路性為目前類或結構及其派生類内部 |
public | 用于指定類型或成員的可通路性為任何位置 |
readonly | 用于聲明隻讀字段或隻讀屬性 |
ref | 用于指定參數是按引用傳遞的、傳回值是按引用傳回的或隻讀引用局部變量 |
return | 用于從方法傳回值或結束方法執行 |
sbyte | 用于聲明8位有符号整數類型 |
sealed | 用于防止類被繼承或虛成員被重寫 |
short | 用于聲明16位有符号整數類型 |
sizeof | 用于擷取值類型占用的位元組數 |
stackalloc | 用于在堆棧上配置設定記憶體塊 |
static | 用于聲明靜态類或靜态成員 |
關鍵字 | 說明 |
string | 用于聲明字元串類型,表示Unicode字元序列 |
struct | 用于聲明結構類型,表示值類型 |
switch | 用于選擇多個分支中的一個執行 |
this | 用于引用目前執行個體或擴充方法中的第一個參數 |
throw | 用于引發異常或重新引發目前異常 |
true | 用于表示布爾值true |
try | 用于定義可能發生異常的代碼塊和處理異常的代碼塊 |
typeof | 用于擷取表示類型的Type對象 |
uint | 用于聲明32位無符号整數類型 |
ulong | 用于聲明64位無符号整數類型 |
unchecked | 用于禁用整數算術運算和轉換的溢出檢查 |
unsafe | 用于聲明不安全的上下文,可以使用指針 |
ushort | 用于聲明16位無符号整數類型 |
using | 用于引入命名空間或類型的别名,或指定可釋放對象的範圍 |
virtual | 用于聲明虛方法、屬性、索引器或事件,可以在派生類中重寫 |
void | 用于指定方法不傳回值或指定指針指向未指定類型的記憶體 |
volatile | 用于聲明字段可以由多個線程同時修改 |
while | 用于聲明前測試條件循環語句 |
上下文關鍵字
以下是C#中的上下文關鍵字:
關鍵字 | 說明 |
add | 用于自定義事件的通路器 |
alias | 用于在extern别名中引入外部程式集 |
and | 用于在模式比對中表示邏輯與操作 |
ascending | 用于在查詢表達式中指定升序排序 |
args | 用于在lambda表達式中表示參數清單 |
async | 用于聲明異步方法或lambda表達式 |
await | 用于等待異步任務完成并提取結果 |
by | 用于在查詢表達式中指定分組依據或排序依據 |
descending | 用于在查詢表達式中指定降序排序 |
dynamic | 用于聲明動态類型,表示運作時确定類型 |
equals | 用于在查詢表達式中指定相等比較 |
from | 用于在查詢表達式中指定資料源和範圍變量 |
get | 用于自定義屬性或索引器的通路器 |
global | 用于通路全局命名空間,避免與局部命名空間沖突 |
group | 用于在查詢表達式中指定分組操作 |
init | 用于自定義屬性或索引器的初始化器,隻能在對象初始化期間指派一次 |
into | 用于在查詢表達式中建立臨時範圍變量或執行連接配接操作 |
關鍵字 | 說明 |
join | 用于在查詢表達式中指定連接配接操作 |
let | 用于在查詢表達式中引入新的範圍變量 |
managed | 用于指定函數指針調用約定為托管的 |
nameof | 用于擷取辨別符的名稱 |
nint | 用于聲明本機大小的有符号整數類型 |
not | 用于在模式比對中表示邏輯非操作 |
notnull | 用于在模式比對中表示非空限制 |
nuint | 用于聲明本機大小的無符号整數類型 |
on | 用于在查詢表達式中指定連接配接條件 |
or | 用于在模式比對中表示邏輯或操作 |
orderby | 用于在查詢表達式中指定排序操作 |
partial | 用于聲明部分類或部分方法,可以在多個檔案中定義 |
record | 用于聲明記錄類型,表示不可變的值類型 |
remove | 用于自定義事件的通路器 |
select | 用于在查詢表達式中指定投影操作 |
set | 用于自定義屬性或索引器的通路器 |
unmanaged | 用于指定函數指針調用約定為非托管的或泛型參數的非托管限制 |
value | 用于表示屬性或索引器的值或匿名函數的傳回值 |
var | 用于聲明隐式類型的局部變量或範圍變量 |
when | 用于在switch語句中指定篩選條件或在catch子句中指定異常篩選器 |
where | 用于在查詢表達式中指定過濾條件或泛型參數的限制條件 |
with | 用于建立記錄類型的副本并修改部分屬性值 |
yield | 用于從疊代器方法傳回值 |
預定義類型
C#提供了一些預定義類型,它們是.NET庫中的類型的别名,可以直接使用而無需引入命名空間。以下是C#中的預定義類型:
值類型
值類型是直接存儲資料的類型,而不是存儲對資料的引用。值類型包括以下幾種:
- 整型數值類型:表示整數,有符号和無符号,不同的位數。例如:int, long, byte, uint等。
- 浮點數值類型:表示小數,有不同的精度和範圍。例如:float, double, decimal等。
- 布爾類型:表示真或假,隻有兩個可能的值。例如:bool。
- 字元類型:表示單個Unicode字元,使用單引号括起來。例如:char。
- 枚舉類型:表示一組命名的常數,可以使用enum關鍵字定義。例如:enum Color { Red, Green, Blue }。
- 結構類型:表示自定義的值類型,可以包含多個字段和方法,可以使用struct關鍵字定義。例如:struct Point { public int X; public int Y; }。
- 元組類型:表示一組有限數量的有序元素,可以使用圓括号和逗号分隔元素定義。例如:(int, string) t = (1, “hello”)。
引用類型
引用類型是存儲對資料的引用(位址)的類型,而不是直接存儲資料。引用類型包括以下幾種:
- 對象類型:表示任何類型的資料,是所有類型的基類,可以使用object關鍵字或System.Object類名表示。例如:object o = “hello”。
- 字元串類型:表示Unicode字元序列,是不可變的引用類型,可以使用string關鍵字或System.String類名表示。例如:string s = “hello”。
- 委托類型:表示對具有特定參數清單和傳回類型的方法的引用,可以使用delegate關鍵字或System.Delegate類名表示。例如:delegate void Action();。
- 動态類型:表示在運作時确定類型的資料,可以使用dynamic關鍵字或System.Object類名表示。例如:dynamic d = 1; d = “hello”。
- 接口類型:表示一組抽象的成員,可以由其他類型實作,可以使用interface關鍵字定義。例如:interface IDisposable { void Dispose(); }。
- 數組類型:表示一維或多元的同類型元素的集合,可以使用方括号和逗号分隔次元定義。例如:int[] a = new int[10]; int[,] b = new int[3, 4];。
- 集合類型:表示一組不同類型的元素的集合,可以使用泛型或非泛型的類或接口表示。例如:List<int> list = new List<int>(); ArrayList array = new ArrayList();。
- 類類型:表示自定義的引用類型,可以包含多個字段、屬性、方法、事件等,可以使用class關鍵字定義。例如:class Person { public string Name { get; set; } public int Age { get; set; } }。
- 記錄類型:表示不可變的引用類型,可以包含多個字段、屬性、方法等,可以使用record關鍵字定義。例如:record Student (string Name, int Age);。
總結
本文介紹了C#中的一些常用的關鍵字和預定義類型,以及它們的作用和用法。關鍵字是編譯器識别的保留辨別符,預定義類型是.NET庫中的類型的别名。了解這些關鍵字和預定義類型有助于編寫高效、可讀和安全的C#代碼。