次の表に、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から派生した型を宣言します。 System.Delegate
型は抽象型です。
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 に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。