次の表に、C# の組み込み型である 値 型 を示します。
次の表に、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から派生した型を宣言する組み込みの参照型キーワードです。 他の組み込み型キーワードとは異なり、 delegate
は特定の .NET 型のエイリアスではありません。 代わりに、抽象 System.Delegate
型から派生するカスタム型を宣言します。 同様に、 dynamic
は、特定の .NET 型の直接エイリアスではなく、ランタイム バインドの動作を表します。
void
キーワードは、型が存在しないことを表します。 値を返さないメソッドの戻り値の型として使用します。
C# 言語には、System.Span<T> 型と System.ReadOnlySpan<T> 型の特殊な規則が含まれています。 これらの型に対応する C# キーワードがないため、これらの型は組み込み型として分類されません。 C# 言語は、配列型と文字列型から Span<T>
および ReadOnlySpan<T>
への暗黙的な変換を定義します。 これらの変換により、Span
型がより自然なプログラミング シナリオに統合されます。 次の変換は、暗黙的なスパン変換 として定義されます。
- 要素型が
E
からSystem.Span<E>
への任意の 1 次元配列から - 要素型が
E
である任意の 1 次元配列からSystem.ReadOnlySpan<U>
への変換 (E
からU
への共分散変換または ID 変換がある場合) -
System.Span<E>
からSystem.ReadOnlySpan<U>
への移行の際に、E
がU
へ共変変換または同一性変換を持つ場合 -
System.ReadOnlySpan<E>
からSystem.ReadOnlySpan<U>
への移行の際に、E
がU
へ共変変換または同一性変換を持つ場合 -
string
からSystem.ReadOnlySpan<char>
へ
コンパイラは、適用可能な 暗黙的なスパン変換 が存在する場合、ユーザー定義の変換を無視しません。 暗黙的なスパン変換は、拡張メソッドの最初の引数 (this
修飾子を持つパラメーター) に適用できます。 暗黙的なスパン変換は、メソッド グループ変換では考慮されません。
関連項目
.NET