天天看點

2.6 C#的常用關鍵字和預定義類型

作者:萬億神帝的夢

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#代碼。

上一篇: 第1次作業,