Översikt över .NET-klassbibliotek
.NET-API:er omfattar klasser, gränssnitt, ombud och värdetyper som påskyndar och optimerar utvecklingsprocessen och ger åtkomst till systemfunktioner. För att underlätta samverkan mellan språk är de flesta .NET-typer CLS-kompatibla och kan därför användas från alla programmeringsspråk vars kompilator överensstämmer med den gemensamma språkspecifikationen (CLS).
.NET-typer är grunden till vilka .NET-program, komponenter och kontroller skapas. .NET innehåller typer som utför följande funktioner:
- Representerar basdatatyper och undantag.
- Kapsla in datastrukturer.
- Utför I/O.
- Få åtkomst till information om inlästa typer.
- Anropa .NET-säkerhetskontroller.
- Ge dataåtkomst, omfattande GUI på klientsidan och serverstyrt guid på klientsidan.
.NET tillhandahåller en omfattande uppsättning gränssnitt, samt abstrakta och konkreta (icke-abstrakta) klasser. Du kan använda de konkreta klasserna som de är eller i många fall härleda dina egna klasser från dem. Om du vill använda funktionerna i ett gränssnitt kan du antingen skapa en klass som implementerar gränssnittet eller härleda en klass från någon av de .NET-klasser som implementerar gränssnittet.
Namngivningskonventioner
.NET-typer använder ett punktsyntaxnamnsschema som anger en hierarki. Den här tekniken grupperar relaterade typer i namnområden så att de kan sökas igenom och refereras enklare. Den första delen av det fullständiga namnet , upp till den högra punkten, är namnområdets namn. Den sista delen av namnet är typnamnet. Representerar till exempel System.Collections.Generic.List<T>
typen List<T>
som tillhör System.Collections.Generic
namnområdet. Typerna i System.Collections.Generic kan användas för att arbeta med generiska samlingar.
Det här namngivningsschemat gör det enkelt för biblioteksutvecklare som utökar .NET att skapa hierarkiska grupper av typer och namnge dem på ett konsekvent och informativt sätt. Det gör också att typer kan identifieras entydigt med sitt fullständiga namn (dvs. med deras namnområde och typnamn), vilket förhindrar kollisioner med typnamn. Biblioteksutvecklare förväntas använda följande konvention när de skapar namn för sina namnområden:
CompanyName.TechnologyName
Namnområdet Microsoft.Word
följer till exempel den här riktlinjen.
Användning av namngivningsmönster för att gruppera relaterade typer i namnområden är ett användbart sätt att skapa och dokumentera klassbibliotek. Det här namngivningsschemat påverkar dock inte synlighet, medlemsåtkomst, arv, säkerhet eller bindning. Ett namnområde kan partitioneras över flera sammansättningar och en enda sammansättning kan innehålla typer från flera namnområden. Sammansättningen tillhandahåller den formella strukturen för versionshantering, distribution, säkerhet, inläsning och synlighet i den gemensamma språkkörningen.
Mer information om namnområden och typnamn finns i Common Type System.
Systemnamnområde
Namnområdet System är rotnamnområdet för grundläggande typer i .NET. Det här namnområdet innehåller klasser som representerar de basdatatyper som används av alla program, Object till exempel (roten i arvshierarkin), Byte, Char, Array, Int32och String. Många av dessa typer motsvarar de primitiva datatyper som ditt programmeringsspråk använder. När du skriver kod med hjälp av .NET-typer kan du använda språkets motsvarande nyckelord när en .NET-basdatatyp förväntas.
I följande tabell visas de bastyper som .NET tillhandahåller, beskriver kort varje typ och anger motsvarande typ i Visual Basic, C#, C++och F#.
Kategori | Klassnamn | beskrivning | Visual Basic-datatyp | C#-datatyp | C++/CLI-datatyp | F#-datatyp |
---|---|---|---|---|---|---|
Integer | Byte | Ett 8-bitars osignerat heltal. | Byte |
byte |
unsigned char |
byte |
SByte | Ett 8-bitars signerat heltal. Inte CLS-kompatibel. |
SByte |
sbyte |
char eller signed char |
sbyte |
|
Int16 | Ett 16-bitars signerat heltal. | Short |
short |
short |
int16 |
|
Int32 | Ett 32-bitars signerat heltal. | Integer |
int |
int eller long |
int |
|
Int64 | Ett 64-bitars signerat heltal. | Long |
long |
__int64 |
int64 |
|
UInt16 | Ett 16-bitars osignerat heltal. Inte CLS-kompatibel. |
UShort |
ushort |
unsigned short |
uint16 |
|
UInt32 | Ett 32-bitars osignerat heltal. Inte CLS-kompatibel. |
UInteger |
uint |
unsigned int eller unsigned long |
uint32 |
|
UInt64 | Ett 64-bitars osignerat heltal. Inte CLS-kompatibel. |
ULong |
ulong |
unsigned __int64 |
uint64 |
|
Flyttal | Half | Ett flyttal med halv precision (16 bitar). | ||||
Single | Ett flyttalsnummer med enkel precision (32 bitar). | Single |
float |
float |
float32 eller single |
|
Double | Ett flyttal med dubbel precision (64 bitar). | Double |
double |
double |
float eller double |
|
Logiskt | Boolean | Ett booleskt värde (sant eller falskt). | Boolean |
bool |
bool |
bool |
Övrigt | Char | Ett Unicode-tecken (16-bitars). | Char |
char |
wchar_t |
char |
Decimal | Ett decimalvärde (128 bitar). | Decimal |
decimal |
Decimal |
decimal |
|
IntPtr | Ett signerat heltal vars storlek beror på den underliggande plattformen (ett 32-bitars värde på en 32-bitarsplattform och ett 64-bitarsvärde på en 64-bitarsplattform). | nint |
unativeint |
|||
UIntPtr | Ett osignerat heltal vars storlek beror på den underliggande plattformen (ett 32-bitarsvärde på en 32-bitarsplattform och ett 64-bitarsvärde på en 64-bitarsplattform). Inte CLS-kompatibel. |
nuint |
unativeint |
|||
Object | Roten i objekthierarkin. | Object |
object |
Object^ |
obj |
|
String | En oföränderlig sträng med fast längd med Unicode-tecken. | String |
string |
String^ |
string |
Förutom basdatatyperna System innehåller namnområdet över 100 klasser, allt från klasser som hanterar undantag till klasser som hanterar grundläggande körningsbegrepp, till exempel programdomäner och skräpinsamlaren. Namnområdet System innehåller också många namnområden på andra nivån.
Mer information om namnområden finns i .NET API Browser för att bläddra i .NET-klassbiblioteket. API-referensdokumentationen innehåller dokumentation om varje namnområde, dess typer och var och en av deras medlemmar.
Datastrukturer
.NET innehåller en uppsättning datastrukturer som är arbetshästar för många .NET-appar. Det här är främst samlingar, men även andra typer.
- Array – Representerar en matris med starkt typerade objekt som kan nås av index. Har en fast storlek, enligt konstruktionen.
- List<T> – Representerar en starkt skriven lista över objekt som kan nås via index. Storleksändras automatiskt efter behov.
- Dictionary<TKey,TValue> – Representerar en samling värden som indexeras av en nyckel. Värden kan nås via nyckel. Storleksändras automatiskt efter behov.
- Uri – Ger en objektrepresentation av en enhetlig resursidentifierare (URI) och enkel åtkomst till URI:ns delar.
- DateTime – Representerar ett ögonblick i tiden, vanligtvis uttryckt som datum och tid på dagen.
Api:er för verktyg
.NET innehåller en uppsättning verktygs-API:er som tillhandahåller funktioner för många viktiga uppgifter.
- HttpClient – Ett API för att skicka HTTP-begäranden och ta emot HTTP-svar från en resurs som identifieras av en URI.
- XDocument – Ett API för att läsa in och köra frågor mot XML-dokument med LINQ.
- StreamReader – Ett API för att läsa filer.
- StreamWriter – Ett API för att skriva filer.
Api:er för appmodell
Det finns många appmodeller som kan användas med .NET, till exempel:
- ASP.NET – ett webbramverk för att skapa webbplatser och tjänster. Stöds i Windows, Linux och macOS (beror på ASP.NET version).
- .NET MAUI – en appplattform för att skapa inbyggda appar som körs i Windows, macOS, iOS och Android med C#.
- Windows Desktop – innehåller Windows Presentation Foundation (WPF) och Windows Forms.