Ü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.

Siehe auch