次の方法で共有


組み込み型 (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> への任意の 1 次元配列から
  • 要素型が E である任意の 1 次元配列から System.ReadOnlySpan<U> への変換 (E から U への共分散変換または ID 変換がある場合)
  • System.Span<E> から System.ReadOnlySpan<U>への移行の際に、EU へ共変変換または同一性変換を持つ場合
  • System.ReadOnlySpan<E> から System.ReadOnlySpan<U>まで、EU への共変変換または恒等変換を持つ場合
  • string から System.ReadOnlySpan<char>

コンパイラは、適用可能な 暗黙的なスパン変換 が存在する場合、ユーザー定義の変換を無視しません。 暗黙的なスパン変換は、拡張メソッドの最初の引数 (this 修飾子を持つパラメーター) に適用できます。 暗黙的なスパン変換は、メソッド グループ変換では考慮されません。

関連項目