Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De volgende tabel bevat de ingebouwde C#--waarde typen:
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 zijn de meeste C#-type trefwoorden uit de linkerkolom aliassen 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
dynamictype.
Het delegate trefwoord is een ingebouwd verwijzingstypewoord dat een type declareert dat is afgeleid van System.Delegate. In tegenstelling tot de andere ingebouwde trefwoorden is delegate dit geen alias voor een specifiek .NET-type. In plaats daarvan declareert het aangepaste typen die zijn afgeleid van het abstracte System.Delegate type. Op dezelfde manier dynamic vertegenwoordigt u het gedrag van runtimebinding in plaats van een directe alias voor een specifiek .NET-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
EtotSystem.Span<E> - Van elke enkeldimensionale array met elementtype
EnaarSystem.ReadOnlySpan<U>, wanneerEeen covariantieconversie of een identiteitsconversie naarUheeft - Van
System.Span<E>totSystem.ReadOnlySpan<U>, wanneerEeen covariantie-overgang of een identiteitsovergang naarUheeft. - Van
System.ReadOnlySpan<E>totSystem.ReadOnlySpan<U>, wanneerEeen covariantie-overgang of een identiteitsovergang naarUheeft. - Van
stringtotSystem.ReadOnlySpan<char>
De compiler negeert nooit een door de gebruiker gedefinieerde conversie wanneer een toepasselijke impliciete spanconversie bestaat. Impliciete spanconversies kunnen worden toegepast op de ontvangerparameter van extensieleden. De ontvangerparameter wordt opgegeven door het extension trefwoord in een extensielid. De ontvangerparameter is de eerste parameter van een extensiemethode met behulp van de this modifier. Impliciete spanconversies worden niet meegenomen voor methodegroepconversies.