Übersicht über die .NET-Klassenbibliothek
.NET-APIs enthalten Klassen, Schnittstellen, Delegate und Werttypen, die den Entwicklungsprozess beschleunigen und optimieren und den Zugriff auf Systemfunktionen ermöglichen. .NET Framework gewährleistet durch überwiegend CLS-kompatible Typen Interoperabilität zwischen verschiedenen Sprachen und kann daher in jeder Programmiersprache verwendet werden, deren Compiler der CLS (Common Language Specification) entspricht.
Die .NET-Typen bilden die Grundlage für den Entwurf von Anwendungen, Komponenten und Steuerelementen in .NET. .NET umfasst Typen zur Ausführung folgender Funktionen:
- Darstellung von Basisdatentypen und -ausnahmen
- Kapseln von Datenstrukturen
- E/A-Operationen
- Zugriff auf Informationen über geladene Typen
- Aufrufen von .NET-Sicherheitsüberprüfungen
- Datenzugriff und Bereitstellen einer eigenständigen Client-GUI sowie einer servergesteuerten Client-GUI
In .NET stehen neben zahlreichen Schnittstellen abstrakte und konkrete (nicht abstrakte) Klassen zur Verfügung. Sie können die konkreten Klassen unverändert verwenden oder in vielen Fällen eigene Klassen von diesen ableiten. Sie können entweder eine Klasse erstellen, die die Schnittstelle implementiert, oder eine Klasse von einer der .NET-Klassen ableiten, die die Schnittstelle implementiert, um die Funktionen einer Schnittstelle zu verwenden.
Namenskonventionen
Für .NET-Typen wird ein Benennungsschema mit Punktsyntax verwendet, das der hierarchischen Struktur entspricht. Bei diesem Verfahren werden verwandte Typen in Namespaces zusammengefasst, wodurch Suchvorgänge und Verweise vereinfacht werden. Der erste Teil des vollständigen Namens, bis zum letzten Punkt, gibt den Namen des Namespace an. Der letzte Teil ist der Name des Typs. System.Collections.Generic.List<T>
stellt beispielsweise den Typ List<T>
dar, der zum Namespace System.Collections.Generic
gehört. Die Typen in System.Collections.Generic können mit generischen Sammlungen verwendet werden.
Dieses Benennungsschema erleichtert es Entwicklern von Bibliotheken, Erweiterungen für .NET zu entwerfen, um hierarchische Typengruppen zu erstellen und diese konsistent und aussagekräftig zu benennen. Außerdem können Typen nach ihrem vollständigen Namen (d. h. ihrem Namespace und Typnamen) eindeutig identifiziert werden, wodurch Konflikte bei Typnamen vermieden werden. Von Entwicklern von Bibliotheken wird erwartet, dass sie sich beim Erstellen der Namen für eigene Namespaces an die nachstehende Konvention halten:
CompanyName.TechnologyName
Der Namespace Microsoft.Word
entspricht beispielsweise dieser Richtlinie.
Für das Erstellen und Dokumentieren von Klassenbibliotheken empfiehlt sich ein Benennungsschema, bei dem verwandte Typen in Namespaces zusammengefasst werden. Dieses wirkt sich jedoch nicht auf Sichtbarkeit, Memberzugriff, Vererbung, Sicherheit oder Bindung aus. Ein Namespace kann von mehreren Assemblys verwendet werden, und eine einzelne Assembly kann Typen aus mehreren Namespaces enthalten. Die Assembly stellt die formale Struktur für Versionsinformationen, Bereitstellung, Sicherheit, Ladevorgänge und Sichtbarkeit in der Common Language Runtime bereit.
Weitere Informationen über Namespaces und Typennamen finden Sie unter Allgemeines Typsystem.
System-Namespace
Beim System-Namespace handelt es sich um den Stammnamespace für Basistypen in .NET. Dieser Namespace enthält Klassen, die die von allen Anwendungen verwendeten Basisdatentypen darstellen, z. B. Object (der Stamm der Vererbungshierarchie), Byte, Char, Array, Int32 und String. Viele dieser Typen entsprechen den primitiven Datentypen, die in den verschiedenen Programmiersprachen verwendet werden. Wenn Sie Code mithilfe von .NET-Typen schreiben, können Sie anstelle eines erwarteten Basisdatentyps von .NET auch das entsprechende Schlüsselwort der verwendeten Programmiersprache angeben.
In der folgenden Tabelle sind die in .NET verfügbaren Basistypen mit einer Kurzbeschreibung der einzelnen Typen und den entsprechenden Typen in Visual Basic, C#, C++ und F# aufgeführt.
Kategorie | Klassenname | Beschreibung | Datentyp in Visual Basic | Datentyp in C# | C++/CLI-Datentyp | F#-Datentyp |
---|---|---|---|---|---|---|
Ganze Zahl | Byte | Eine 8-Bit-Ganzzahl ohne Vorzeichen. | Byte |
byte |
unsigned char |
byte |
SByte | Eine 8-Bit-Ganzzahl mit Vorzeichen. Nicht CLS-kompatibel. |
SByte |
sbyte |
char oder signed char |
sbyte |
|
Int16 | Eine 16-Bit-Ganzzahl mit Vorzeichen. | Short |
short |
short |
int16 |
|
Int32 | Eine 32-Bit-Ganzzahl mit Vorzeichen. | Integer |
int |
int oder long |
int |
|
Int64 | Eine 64-Bit-Ganzzahl mit Vorzeichen. | Long |
long |
__int64 |
int64 |
|
UInt16 | Eine 16-Bit-Ganzzahl ohne Vorzeichen. Nicht CLS-kompatibel. |
UShort |
ushort |
unsigned short |
uint16 |
|
UInt32 | Eine 32-Bit-Ganzzahl ohne Vorzeichen. Nicht CLS-kompatibel. |
UInteger |
uint |
unsigned int oder unsigned long |
uint32 |
|
UInt64 | Eine 64-Bit-Ganzzahl ohne Vorzeichen. Nicht CLS-kompatibel. |
ULong |
ulong |
unsigned __int64 |
uint64 |
|
Gleitkomma | Half | Eine Gleitkommazahl halber Genauigkeit (16 Bit). | ||||
Single | Eine Gleitkommazahl einfacher Genauigkeit (32 Bit). | Single |
float |
float |
float32 oder single |
|
Double | Eine Gleitkommazahl doppelter Genauigkeit (64 Bit). | Double |
double |
double |
float oder double |
|
Logisch | Boolean | Ein boolescher Wert (true oder false). | Boolean |
bool |
bool |
bool |
Andere | Char | Ein Unicode-Zeichen (16 Bit). | Char |
char |
wchar_t |
char |
Decimal | Ein Dezimalwert (128 Bit). | Decimal |
decimal |
Decimal |
decimal |
|
IntPtr | Eine ganze Zahl mit Vorzeichen, deren Größe von der zugrunde liegenden Plattform abhängt (32-Bit-Wert auf einer 32-Bit-Plattform und 64-Bit-Wert auf einer 64-Bit-Plattform). | nint |
unativeint |
|||
UIntPtr | Eine ganze Zahl, deren Größe von der zugrunde liegenden Plattform abhängt (32-Bit-Wert auf einer 32-Bit-Plattform und 64-Bit-Wert auf einer 64-Bit-Plattform). Nicht CLS-kompatibel. |
nuint |
unativeint |
|||
Object | Der Stamm der Objekthierarchie. | Object |
object |
Object^ |
obj |
|
String | Eine unveränderliche Zeichenfolge fester Länge mit Unicode-Zeichen. | String |
string |
String^ |
string |
Neben den Basisdatentypen umfasst der System-Namespace mehr als 100 Klassen, die von Klassen für die Behandlung von Ausnahmen bis zu Klassen reichen, die für wesentliche Konzepte der Laufzeit vorgesehen sind, beispielsweise Anwendungsdomänen oder der Garbage Collector. Der System-Namespace beinhaltet darüber hinaus zahlreiche Namespaces zweiter Ebene.
Verwenden Sie für weitere Informationen zu Namespaces den .NET-API-Browser, um die .NET Framework-Klassenbibliothek zu durchsuchen. Die API-Referenzdokumentation bietet Dokumentationen zu jedem Namespace, den dazu gehörigen Typen und Membern.
Datenstrukturen
.NET umfasst eine Reihe von Datenstrukturen, die die Arbeitsgrundlage für zahlreiche .NET-Apps darstellen. Die meisten sind Auflistungen, es gibt jedoch auch andere Typen.
- Array: Stellt ein Array aus stark typisierten Objekten dar, auf die über einen Index zugegriffen werden kann. Verfügt konstruktionsbedingt über eine festgelegte Größe.
- List<T>: Stellt eine stark typisierte Liste von Objekten dar, auf die über einen Index zugegriffen werden kann. Die Größe wird nach Bedarf automatisch angepasst.
- Dictionary<TKey,TValue>: Stellt eine Auflistung aus Werten dar, die durch einen Schlüssel indiziert werden. Auf die Werte kann über einen Schlüssel zugegriffen werden. Die Größe wird nach Bedarf automatisch angepasst.
- Uri: Stellt eine Objektdarstellung eines URIs (Uniform Resource Identifier) und einfachen Zugriff auf die Teile des URIs bereit.
- DateTime: Stellt einen Zeitpunkt dar, normalerweise durch Datum und Uhrzeit angegeben.
Hilfsprogramm-APIs
.NET umfasst eine Reihe von Hilfsprogramm-APIs, die Funktionen für viele wichtige Aufgaben bereitstellen.
- HttpClient: Eine API zum Senden von HTTP-Anforderungen und Empfangen von HTTP-Antworten aus einer Ressource, die durch einen URI identifiziert wird.
- XDocument: Eine API zum Laden und Abfragen von XML-Dokumenten mit LINQ.
- StreamReader: Eine API zum Lesen von Dateien.
- StreamWriter: Eine API zum Schreiben von Dateien.
App-Modell-APIs
Es gibt viele App-Modelle von unterschiedlichen Herstellern, die mit .NET verwendet werden können, darunter:
- ASP.NET – Ein Webframework zum Erstellen von Websites und -diensten. Wird unter Windows, Linux und macOS (je nach ASP.NET-Version) unterstützt.
- .NET MAUI – Eine App-Plattform zum Erstellen nativer Apps, die unter Windows, macOS, iOS und Android mit C# ausgeführt werden.
- Windows Desktop: Schließt Windows Presentation Foundation (WPF) und Windows Forms ein.