Inbyggda typer (C#-referens)
I följande tabell visas de inbyggda värdetyperna och för C#:
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
tillSystem.Span<E>
- Från en endimensionell matris med elementtyp
E
tillSystem.ReadOnlySpan<U>
, närE
har samvarianskonvertering eller en identitetskonvertering tillU
- Från
System.Span<E>
tillSystem.ReadOnlySpan<U>
, närE
har en samvarianskonvertering eller en identitetskonvertering tillU
- Från
System.ReadOnlySpan<E>
tillSystem.ReadOnlySpan<U>
, närE
har en samvarianskonvertering eller en identitetskonvertering tillU
- Från
string
tillSystem.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.