Einführung in die .NET Framework-Klassenbibliothek
.NET Framework beinhaltet Klassen, Schnittstellen und Werttypen, die den Entwicklungsprozess beschleunigen und optimieren und darüber hinaus den Zugriff auf Systemfunktionen ermöglichen. .NET Framework gewährleistet durch 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 in .NET Framework verfügbaren Typen bilden die Grundlage für den Entwurf von Anwendungen, Komponenten und Steuerelementen in .NET. Diese Typen bieten folgende Funktionen:
- Darstellung von Basisdatentypen und -ausnahmen
- Kapseln von Datenstrukturen
- E/A-Operationen
- Zugriff auf Informationen über geladene Typen
- Aufrufen von .NET Framework-Sicherheitsüberprüfungen
- Datenzugriff und Bereitstellen einer eigenständigen Client-GUI sowie einer servergesteuerten Client-GUI
In .NET Framework stehen neben zahlreichen Schnittstellen abstrakte und konkrete (nicht abstrakte) Klassen zur Verfügung. Sie können die konkreten Klassen unverändert verwenden oder eigene Klassen von ihnen ableiten. Um auf die Funktionen einer Schnittstelle zuzugreifen, können Sie entweder eine Klasse erstellen und die entsprechende Schnittstelle in der Klasse implementieren oder eine Klasse von einer .NET Framework-Klasse ableiten, die die Schnittstelle implementiert.
Benennungskonventionen
Für .NET Framework-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 Namespaces wieder. Der letzte Teil ist der Name des Typs. System.Collections.ArrayList stellt z. B. den Typ ArrayList dar, der im Namespace System.Collections enthalten ist. Die Typen in System.Collections werden zum Bearbeiten und Ändern von Objektauflistungen verwendet.
Dieses Benennungsschema erleichtert es Entwicklern von Bibliotheken, die Erweiterungen für .NET Framework entwerfen, hierarchische Typengruppen zu erstellen und diese konsistent und aussagekräftig zu benennen. Entwickler von Bibliotheken sollten beim Erstellen der Namen für eigene Namespaces die nachstehende Richtlinie befolgen:
CompanyName.TechnologyName
Der Namespace Microsoft.Word beispielsweise entspricht dieser Richtlinie.
Insbesondere 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 Assemblies verwendet werden, und eine einzelne Assembly kann Typen aus mehreren Namespaces enthalten. Die Assembly stellt die formale Struktur für Versionsinformationen, Weitergabe, Sicherheit, Ladevorgänge und Sichtbarkeit in der Common Language Runtime bereit.
Weitere Informationen über Namespaces und Typennamen finden Sie unter Allgemeines Typensystem.
Systemnamespace
Beim System-Namespace handelt es sich um den Stammnamespace für Basistypen in .NET Framework. Dieser Namespace beinhaltet Klassen, die die von allen Anwendungen verwendeten Basisdatentypen darstellen: Object (der Stamm der Vererbungshierarchie), Byte, Char, Array, Int32, String usw. Viele dieser Typen entsprechen den primitiven Datentypen, die in den verschiedenen Programmiersprachen verwendet werden. Wenn Sie Code mit Hilfe von .NET Framework-Typen schreiben, können Sie anstelle eines erwarteten Basisdatentyps von .NET Framework auch das entsprechende Schlüsselwort der verwendeten Sprache angeben.
In der folgenden Tabelle werden einige der in .NET Framework verfügbaren Datentypen mit einer Kurzbeschreibung und den entsprechenden Typen in Visual Basic, C# und den Managed Extensions for C++ aufgeführt. Die Tabelle enthält auch Einträge für die Klassen Object und String, für die in vielen Sprachen entsprechende Schlüsselwörter vorhanden sind.
Kategorie | Klassenname | Beschreibung | Datentyp in Visual Basic | Datentyp in C# | Datentyp in den Managed Extensions for C++ | Datentyp in JScript |
---|---|---|---|---|---|---|
Ganze Zahl | Byte | Eine 8-Bit-Ganzzahl ohne Vorzeichen. | Byte | byte | char | Byte |
SByte | Eine 8-Bit-Ganzzahl mit Vorzeichen.
Nicht CLS-kompatibel. |
SByte
Kein integrierter Typ. |
sbyte | signed char | SByte | |
Int16 | Eine 16-Bit-Ganzzahl mit Vorzeichen. | Short | short | short | short | |
Int32 | Eine 32-Bit-Ganzzahl mit Vorzeichen. | Integer | int | int
– oder – long |
int | |
Int64 | Eine 64-Bit-Ganzzahl mit Vorzeichen. | Long | long | __int64 | long | |
UInt16 | Eine 16-Bit-Ganzzahl ohne Vorzeichen.
Nicht CLS-kompatibel. |
UInt16
Kein integrierter Typ. |
ushort | unsigned short | UInt16 | |
UInt32 | Eine 32-Bit-Ganzzahl ohne Vorzeichen.
Nicht CLS-kompatibel. |
UInt32
Kein integrierter Typ. |
uint | unsigned int
– oder – unsigned long |
UInt32 | |
UInt64 | Eine 64-Bit-Ganzzahl ohne Vorzeichen.
Nicht CLS-kompatibel. |
UInt64
Kein integrierter Typ. |
ulong | unsigned __int64 | UInt64 | |
Gleitkomma | Single | Eine Gleitkommazahl einfacher Genauigkeit (32 Bit). | Single | float | float | float |
Double | Eine Gleitkommazahl doppelter Genauigkeit (64 Bit). | Double | double | double | double | |
Logisch | Boolean | Ein boolescher Wert (true oder false). | Boolean | bool | bool | bool |
Sonstige | Char | Ein Unicode-Zeichen (16 Bit). | Char | char | wchar_t | char |
Decimal | Ein 96-Bit-Dezimalwert. | 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). | IntPtr
Kein integrierter Typ. |
IntPtr
Kein integrierter Typ. |
IntPtr
Kein integrierter Typ. |
IntPtr | |
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. |
UIntPtr
Kein integrierter Typ. |
UIntPtr
Kein integrierter Typ. |
UIntPtr
Kein integrierter Typ. |
UIntPtr | |
Klassenobjekte | Object | Der Stamm der Objekthierarchie. | Object | object | Object* | Object |
String | Eine unveränderliche Zeichenfolge fester Länge mit Unicode-Zeichen. | String | string | String* | String |
Neben den Basisdatentypen umfasst der System-Namespace ungefähr 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.
Weitere Informationen über Namespaces finden Sie in der .NET Framework-Referenz. In der Referenzdokumentation finden Sie eine Kurzübersicht zu jedem Namespace sowie eine formale Beschreibung aller Typen und der zugehörigen Elemente.
Siehe auch
Allgemeines Typensystem | .NET Framework-Referenz | Einblicke in .NET Framework