Delen via


Ingebouwde typen (C#-referentie)

De volgende tabel bevat de ingebouwde C#--waarde typen:

C#-type trefwoord .NET type
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

De volgende tabel bevat de ingebouwde C#-verwijzingstypen:

C#-type trefwoord .NET-type
object System.Object
string System.String
delegate System.Delegate
dynamic System.Object

In de voorgaande tabellen is het C#-type trefwoord uit de linkerkolom (behalve delegate en dynamic) een alias voor het bijbehorende .NET-type. Ze zijn uitwisselbaar. De volgende declaraties declareren bijvoorbeeld variabelen van hetzelfde type:

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

Het dynamic type is vergelijkbaar met object. De belangrijkste verschillen zijn:

  • Bewerkingen op een dynamic-expressie zijn tijdens runtime gebonden, niet tijdens het compileren.
  • U kunt new dynamic()niet gebruiken.
  • U kunt een type niet afleiden van het dynamic type.

Het delegate trefwoord declareert een type dat is afgeleid van System.Delegate. System.Delegate type is een abstract type.

Het void trefwoord vertegenwoordigt het ontbreken van een type. U gebruikt dit als het retourtype van een methode die geen waarde retourneert.

De C#-taal bevat gespecialiseerde regels voor de typen System.Span<T> en System.ReadOnlySpan<T>. Deze typen worden niet geclassificeerd als ingebouwde typen, omdat er geen C#-trefwoorden zijn die overeenkomen met deze typen. De C#-taal definieert impliciete conversies van matrixtypen en het tekenreekstype naar Span<T> en ReadOnlySpan<T>. Deze conversies integreren Span typen in natuurlijkere programmeerscenario's. De volgende conversies worden gedefinieerd als impliciete spanconversies:

  • Van een enkeledimensionale matrix met elementtype E tot System.Span<E>
  • Van elke enkeldimensionale array met elementtype E naar System.ReadOnlySpan<U>, wanneer E een covariantieconversie of een identiteitsconversie naar U heeft
  • Van System.Span<E> tot System.ReadOnlySpan<U>, wanneer E een covariantie-overgang of een identiteitsovergang naar U heeft.
  • Van System.ReadOnlySpan<E> tot System.ReadOnlySpan<U>, wanneer E ofwel een covariantieconversie of een identiteitsconversie naar U heeft
  • Van string tot System.ReadOnlySpan<char>

De compiler negeert nooit een door de gebruiker gedefinieerde conversie wanneer een toepasselijke impliciete spanconversie bestaat. Impliciete spanconversies kunnen worden toegepast op het eerste argument van extensiemethoden, de parameter met de this modifier. Impliciete spanconversies worden niet meegenomen voor methodegroepconversies.

Zie ook