Dela via


Inbyggda typer (C#-referens)

I följande tabell visas de inbyggda värdetyperna och för C#:

Nyckelord för C#-typ .NET-typ
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

I följande tabell visas den inbyggda C#-referensen typer:

Nyckelord för C#-typ .NET-typ
object System.Object
string System.String
delegate System.Delegate
dynamic System.Object

I föregående tabeller är nyckelordet C#-typ från den vänstra kolumnen (förutom delegera och dynamisk) ett alias för motsvarande .NET-typ. De är utbytbara. Följande deklarationer deklarerar till exempel variabler av samma typ:

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

Typen dynamic liknar object. De största skillnaderna är:

  • Operationer på ett dynamic-uttryck är bundna vid körtid, inte vid kompileringstillfället.
  • Du kan inte använda new dynamic().
  • Du kan inte härleda en typ från den dynamic typen.

Nyckelordet delegate deklarerar en typ som härletts från System.Delegate. System.Delegate typ är en abstrakt typ.

Nyckelordet void representerar frånvaron av en typ. Du använder den som returtyp för en metod som inte returnerar ett värde.

C#-språket innehåller särskilda regler för System.Span<T> och System.ReadOnlySpan<T> typer. Dessa typer klassificeras inte som inbyggda typer eftersom det inte finns C#-nyckelord som motsvarar dessa typer. C#-språket definierar implicita konverteringar från matristyper och strängtypen till Span<T> och ReadOnlySpan<T>. Dessa konverteringar integrerar Span typer i mer naturliga programmeringsscenarier. Följande konverteringar definieras som implicita spannkonverteringar:

  • Från valfri endimensionell matris med elementtyp E till System.Span<E>
  • Från en endimensionell matris med elementtyp E till System.ReadOnlySpan<U>, när E har samvarianskonvertering eller en identitetskonvertering till U
  • Från System.Span<E> till System.ReadOnlySpan<U>, när E har en samvarianskonvertering eller en identitetskonvertering till U
  • Från System.ReadOnlySpan<E> till System.ReadOnlySpan<U>, när E har en samvarianskonvertering eller en identitetskonvertering till U
  • Från string till System.ReadOnlySpan<char>

Kompilatorn ignorerar aldrig någon användardefinierad konvertering där en tillämplig implicit span-konvertering finns. Implicita span-konverteringar kan tillämpas på det första argumentet för tilläggsmetoder, parametern med this-modifieraren. Implicita span-konverteringar beaktas inte för metodgruppkonverteringar.

Se även