共用方式為


內建類型 (C# 參考)

下表列出了 C# 預設內建的 類型:

C# 類型關鍵詞 .NET 類型
bool System.Boolean
byte System.Byte
sbyte System.SByte
char System.Char
decimal System.Decimal
double System.Double
float System.Single
int System.Int32
uint System.UInt32
nint System.IntPtr
nuint System.UIntPtr
long System.Int64
ulong System.UInt64
short System.Int16
ushort System.UInt16

下表列出 C# 內建 參考 類型:

C# 類型關鍵詞 .NET 類型
object System.Object
string System.String
delegate System.Delegate
dynamic System.Object

在上述表格中,左欄中的 C# 型別關鍵字(除了 委派動態)是對應 .NET 類型的別名。 它們是可互換的。 例如,下列宣告會宣告相同類型的變數:

int a = 123;
System.Int32 b = 123;

dynamic 類型類似於 object。 主要差異如下:

  • dynamic 表示式上的作業會在執行時綁定,而不是在編譯時綁定。
  • 您無法使用 new dynamic()
  • 您無法從 dynamic 類型衍生類型。

delegate 關鍵詞會宣告衍生自 System.Delegate的類型。 System.Delegate 類型是抽象類型。

void 關鍵詞代表沒有類型。 您可以使用它做為不會傳回值之方法的傳回型別。

C# 語言包含 System.Span<T>System.ReadOnlySpan<T> 類型的特製化規則。 這些類型不會分類為內建類型,因為沒有對應至這些類型的 C# 關鍵詞。 C# 語言會定義從陣列類型和字串類型到 Span<T>ReadOnlySpan<T>的隱含轉換。 這些轉換會將 Span 類型整合到更自然的程序設計案例中。 下列轉換定義為 隱含範圍轉換

  • 從任何元素類型為 E 的單一維度陣列轉換到元素類型為 System.Span<E>
  • E 具有共變轉換或同一性轉換至 U 時,任何元素類型為 ESystem.ReadOnlySpan<U>的單一維度陣列均可應用此轉換。
  • System.Span<E>System.ReadOnlySpan<U>時,當 E 具有共變數轉換或識別轉換成 U
  • System.ReadOnlySpan<E>System.ReadOnlySpan<U>,當 E 具有共變量轉換或恆等轉換為 U 的能力時
  • stringSystem.ReadOnlySpan<char>

編譯程式絕不會忽略任何使用者定義的轉換,其中適用的 隱含範圍轉換 存在。 隱含範圍轉換可以套用至 擴充方法的第一個參數,也就是具有 this 修飾詞的參數。 方法群組轉換不會考慮隱含範圍轉換。

另請參閱