Overzicht van .NET-klassenbibliotheek

.NET-API's omvatten klassen, interfaces, gemachtigden en waardetypen die het ontwikkelingsproces versnellen en optimaliseren en toegang bieden tot systeemfunctionaliteit. Om de interoperabiliteit tussen talen te vergemakkelijken, zijn de meeste .NET-typen CLS-compatibel en kunnen daarom worden gebruikt vanuit elke programmeertaal waarvan de compiler voldoet aan de algemene taalspecificatie (CLS).

.NET-typen vormen de basis waarop .NET-toepassingen, onderdelen en besturingselementen worden gebouwd. .NET bevat typen die de volgende functies uitvoeren:

  • Vertegenwoordigen basisgegevenstypen en uitzonderingen.
  • Gegevensstructuren inkapselen.
  • I/O uitvoeren.
  • Krijg toegang tot informatie over geladen typen.
  • Roep .NET-beveiligingscontroles aan.
  • Geef gegevenstoegang, uitgebreide GUI aan de clientzijde en door de server beheerde GUI aan de clientzijde.

.NET biedt een uitgebreide set interfaces, evenals abstracte en concrete (niet-abstracte) klassen. U kunt de concrete klassen als zodanig gebruiken of in veel gevallen uw eigen klassen ervan afleiden. Als u de functionaliteit van een interface wilt gebruiken, kunt u een klasse maken waarmee de interface wordt geïmplementeerd of een klasse wordt afgeleid van een van de .NET-klassen waarmee de interface wordt geïmplementeerd.

Naamconventies

.NET-typen gebruiken een naamgevingsschema voor een puntsyntaxis dat een hiërarchie aangeeft. Met deze techniek worden gerelateerde typen gegroepeerd in naamruimten, zodat ze gemakkelijker kunnen worden doorzocht en waarnaar kan worden verwezen. Het eerste deel van de volledige naam, tot aan de meest rechtse punt, is de naamruimtenaam. Het laatste deel van de naam is de typenaam. Vertegenwoordigt bijvoorbeeld System.Collections.Generic.List<T> het List<T> type, dat deel uitmaakt van de System.Collections.Generic naamruimte. De typen kunnen System.Collections.Generic worden gebruikt om te werken met algemene verzamelingen.

Met dit naamgevingsschema kunnen bibliotheekontwikkelaars eenvoudig .NET uitbreiden om hiërarchische groepen typen te maken en op een consistente, informatieve manier een naam te geven. Hiermee kunnen typen ook ondubbelzinnig worden geïdentificeerd door hun volledige naam (dat wil gezegd, door hun naamruimte en typenaam), waardoor typenaamconflicten worden voorkomen. Bibliotheekontwikkelaars gebruiken naar verwachting de volgende conventie bij het maken van namen voor hun naamruimten:

CompanyName.TechnologyName

De naamruimte Microsoft.Word voldoet bijvoorbeeld aan deze richtlijn.

Het gebruik van naamgevingspatronen voor het groeperen van gerelateerde typen in naamruimten is een handige manier om bibliotheken met documentklassen te bouwen en te documenteren. Dit naamgevingsschema heeft echter geen invloed op zichtbaarheid, toegang tot leden, overname, beveiliging of binding. Een naamruimte kan worden gepartitioneerd over meerdere assembly's en één assembly kan typen uit meerdere naamruimten bevatten. De assembly biedt de formele structuur voor versiebeheer, implementatie, beveiliging, laden en zichtbaarheid in de algemene taalruntime.

Zie Common Type System voor meer informatie over naamruimten en typenamen.

Systeemnaamruimte

De System naamruimte is de hoofdnaamruimte voor fundamentele typen in .NET. Deze naamruimte bevat klassen die de basisgegevenstypen vertegenwoordigen die door alle toepassingen worden gebruikt, Object bijvoorbeeld (de hoofdmap van de overnamehiërarchie), Byte, , ArrayChar, en Int32String. Veel van deze typen komen overeen met de primitieve gegevenstypen die door uw programmeertaal worden gebruikt. Wanneer u code schrijft met behulp van .NET-typen, kunt u het bijbehorende trefwoord van uw taal gebruiken wanneer een .NET-basisgegevenstype wordt verwacht.

De volgende tabel bevat de basistypen die .NET levert, kort een beschrijving van elk type en geeft het bijbehorende type aan in Visual Basic, C#, C++en F#.

Categorie Klassenaam Beschrijving Visual Basic-gegevenstype C#-gegevenstype C++/CLI-gegevenstype F#-gegevenstype
Geheel getal Byte Een 8-bits geheel getal zonder teken. Byte byte unsigned char byte
SByte Een 8-bits geheel getal dat is ondertekend.

Niet CLS-compatibel.
SByte sbyte char of signed char sbyte
Int16 Een 16-bits geheel getal dat is ondertekend. Short short short int16
Int32 Een 32-bits geheel getal dat is ondertekend. Integer int int of long int
Int64 Een 64-bits ondertekend geheel getal. Long long __int64 int64
UInt16 Een 16-bits geheel getal zonder teken.

Niet CLS-compatibel.
UShort ushort unsigned short uint16
UInt32 Een 32-bits geheel getal zonder teken.

Niet CLS-compatibel.
UInteger uint unsigned int of unsigned long uint32
UInt64 Een 64-bits geheel getal zonder teken.

Niet CLS-compatibel.
ULong ulong unsigned __int64 uint64
Drijvende komma Half Een drijvendekommagetal van een halve precisie (16-bits).
Single Een drijvendekommagetal met één precisie (32-bits). Single float float float32 of single
Double Een getal met dubbele precisie (64-bits) drijvende komma. Double double double float of double
Logisch Boolean Een Booleaanse waarde (waar of onwaar). Boolean bool bool bool
Overige Char Een Unicode-teken (16-bits). Char char wchar_t char
Decimal Een decimale waarde (128-bits). Decimal decimal Decimal decimal
IntPtr Een ondertekend geheel getal waarvan de grootte afhankelijk is van het onderliggende platform (een 32-bits waarde op een 32-bits platform en een 64-bits waarde op een 64-bits platform). nint unativeint
UIntPtr Een niet-ondertekend geheel getal waarvan de grootte afhankelijk is van het onderliggende platform (een 32-bits waarde op een 32-bits platform en een 64-bits waarde op een 64-bits platform).

Niet CLS-compatibel.
nuint unativeint
Object De hoofdmap van de objecthiërarchie. Object object Object^ obj
String Een onveranderbare tekenreeks met een vaste lengte van Unicode-tekens. String string String^ string

Naast de basisgegevenstypen bevat de System naamruimte meer dan 100 klassen, variërend van klassen die uitzonderingen verwerken tot klassen die omgaan met kernruntimeconcepten, zoals toepassingsdomeinen en de garbagecollector. De System naamruimte bevat ook veel naamruimten op het tweede niveau.

Gebruik de .NET API-browser om door de .NET-klassebibliotheek te bladeren voor meer informatie over naamruimten. De API-referentiedocumentatie bevat documentatie over elke naamruimte, de bijbehorende typen en elk van hun leden.

Gegevensstructuren

.NET bevat een set gegevensstructuren die de werkpaarden van veel .NET-apps zijn. Dit zijn voornamelijk verzamelingen, maar bevatten ook andere typen.

  • Array - Vertegenwoordigt een matrix van sterk getypte objecten die toegankelijk zijn voor index. Heeft een vaste grootte, per constructie.
  • List<T> - Vertegenwoordigt een sterk getypte lijst met objecten die toegankelijk zijn via index. Het formaat wordt automatisch gewijzigd indien nodig.
  • Dictionary<TKey,TValue> - Vertegenwoordigt een verzameling waarden die door een sleutel worden geïndexeerd. Waarden kunnen worden geopend via de sleutel. Het formaat wordt automatisch gewijzigd indien nodig.
  • Uri - Biedt een objectweergave van een URI (Uniform Resource Identifier) en eenvoudige toegang tot de onderdelen van de URI.
  • DateTime - Vertegenwoordigt een moment in de tijd, meestal uitgedrukt als een datum en tijd van de dag.

Hulpprogramma-API's

.NET bevat een set hulpprogramma-API's die functionaliteit bieden voor veel belangrijke taken.

  • HttpClient - Een API voor het verzenden van HTTP-aanvragen en het ontvangen van HTTP-antwoorden van een resource die is geïdentificeerd door een URI.
  • XDocument - Een API voor het laden en opvragen van XML-documenten met LINQ.
  • StreamReader - Een API voor het lezen van bestanden.
  • StreamWriter - Een API voor het schrijven van bestanden.

App-model-API's

Er zijn veel app-modellen die kunnen worden gebruikt met .NET, bijvoorbeeld:

  • ASP.NET : een webframework voor het bouwen van websites en services. Ondersteund in Windows, Linux en macOS (afhankelijk van ASP.NET versie).
  • .NET MAUI : een app-platform voor het bouwen van systeemeigen apps die worden uitgevoerd op Windows, macOS, iOS en Android met C#.
  • Windows Desktop : bevat Windows Presentation Foundation (WPF) en Windows Forms.

Zie ook