Standardbibliotheken (CLI) - Standard Libraries (CLI)
Die Standardbibliotheken ist ein Satz von Bibliotheken in der mitgelieferten Common Language Infrastructure (CLI) , um viele gemeinsame Funktionen wie Datei Lesen und Schreiben zu verkapseln XML - Dokument Manipulation, Ausnahmebehandlung , Anwendung Globalisierung , Netzwerk - Kommunikation, Einfädeln und Reflexion , die erleichtert die Arbeit des Programmierers. Es hat einen viel größeren Umfang als Standardbibliotheken für die meisten anderen Sprachen, einschließlich C++ , und ist in Umfang und Abdeckung mit den Standardbibliotheken von Java vergleichbar .
Die Liste der Standardbibliotheken ist Base Class Library (BCL), Runtime Infrastructure Library (beide Teil des Kernel-Profils), Network Library, Reflexion Library, XML Library (die mit den beiden erstgenannten Bibliotheken Teil des Kompaktprofils sind und das Extended Array Bibliothek, Parallelbibliothek, Gleitkommabibliothek, Vararg-Bibliothek.
Die Framework-Klassenbibliothek (FCL) ist der Ursprung der Standardbibliotheken, da das .NET Framework, das die FCL enthält, die erste Implementierung der CLI ist.
Profile
Die wichtigsten Standardbibliotheken sind in zwei Standardprofile organisiert, das Kernel-Profil und das Compact-Profil. Die folgenden Standardbibliotheken gehören keinem Profil an: die Extended Array Library, die Extended Numerics Library, die Parallel Library und die Vararg Library.
Kernel-Profil
Das Kernel-Profil ist eine Untermenge des Compact-Profils. Das Kernel-Profil enthält die Base Class Library (BCL) und die Runtime Infrastructure Library.
Kompaktprofil
Das Compact Profile enthält diese Bibliotheken im Kernel Profile sowie die Network Library, die Reflection Library und die XML Library.
Bibliotheken
Basisklassenbibliothek
Die Base Class Library ist eine einfache Laufzeitbibliothek für moderne Programmiersprachen. Sie dient als Standard für die Laufzeitbibliothek für die Sprache C# sowie als eine der CLI-Standardbibliotheken. Es bietet Typen zur Darstellung der integrierten Datentypen der CLI, einfachen Dateizugriff, benutzerdefinierte Attribute, Sicherheitsattribute, String-Manipulation, Formatierung, Streams, Sammlungen, unter anderem. Es definiert Typen in den folgenden Namespaces:
- System
- Definiert die Objektklasse , die alle Referenztyp - Objekte aus (einschließlich Wert förmigen Gegenstände) ableiten und die Valuetype - Klasse , die alle Werttypen Objekte aus abzuleiten. Es definiert auch die Basisdatentypen wie Integer , Gleitkommazahlen , Zeichen , Strings , Boolean , Aufzählung und mehr. Unterstützung für die Umgebung und Plattform und eine Befehlszeilenschnittstelle werden zusammen mit Basisklassen für Ausnahmen und Attribute bereitgestellt . Es definiert Arrays und Delegaten , mathematische Funktionen und viele andere Typen.
- System.Kollektionen
- Definiert viele gängige Containertypen, die in der Programmierung verwendet werden, wie Wörterbücher , Hashtabellen , Listen , Warteschlangen und Stacks .
- System.Collections.Generic
- Definiert generische Typen der Containertypen im System.Collections-Namespace.
- Systemdiagnose
- Definiert Typen, die die Möglichkeit bieten, Anwendungen zu diagnostizieren. Es umfasst Ereignisprotokollierung , Leistungsindikatoren, Ablaufverfolgung und Interaktion mit Systemprozessen.
- System.Globalisierung
- Definiert Typen, die kulturbezogene Informationen definieren, einschließlich Sprache, Land/Region, verwendete Kalender, Formatmuster für Datum, Währung und Zahlen und Sortierreihenfolge für Zeichenfolgen.
- System.IO
- Definiert einen Typ, der das Lesen aus und Schreiben in verschiedene Streams ermöglicht , z. B. Dateien oder andere Datenstreams . Bietet auch eine Verbindung zum Dateisystem .
- Systemsicherheit
- Definiert Typen, die das Sicherheitssystem und die Berechtigungen darstellen.
- System.Sicherheit.Berechtigungen
- Definiert Typen, die den Zugriff auf Vorgänge und Ressourcen basierend auf Richtlinien steuern.
- System.Text
- Definiert Typen, die verschiedene Zeichencodierungen , reguläre Ausdrücke und einen effizienteren Mechanismus zum Bearbeiten von Zeichenfolgen unterstützen.
- System.Threading
- Definiert Typen, die Multithread-Programmierung ermöglichen .
Laufzeitinfrastrukturbibliothek
Die Runtime Infrastructure Library stellt die Dienste bereit, die ein Compiler benötigt, um auf die CLI abzuzielen, und die Funktionen, die zum dynamischen Laden von Typen aus einem Stream in einem angegebenen Dateiformat erforderlich sind. Es definiert Typen in den folgenden Namespaces:
- System
- Definiert Typen für die Anwendungsdomäne , Zeiger , Handles und mehr.
- System.Reflexion
- Definiert Typen, die eine verwaltete Ansicht geladener Typen, Methoden und Felder bereitstellen und Typen dynamisch erstellen und aufrufen können. Diese Typen sind für die Programmlaufzeit relevant .
- System.Runtime.CompilerServices
- Definiert Typen, die Funktionen für Compiler-Autoren bereitstellen, die verwalteten Code verwenden, um Attribute in Metadaten anzugeben , die sich auf das Laufzeitverhalten des Virtual Execution System auswirken .
- System.Runtime.InteropServices
- Definiert Typen, die Plattformaufrufdienste (P/Invoke) unterstützen.
Netzwerkbibliothek
Die Netzwerkbibliothek bietet einfache Netzwerkdienste, einschließlich direktem Zugriff auf Netzwerkports sowie HTTP-Unterstützung. Es definiert Typen in den folgenden Namespaces:
- System
- Definiert Typen, die eine Objektdarstellung eines Uniform Resource Identifier (URI) und einfachen Zugriff auf die Teile des URI bereitstellen .
- System.Sammlungen.Spezialisiert
- Definiert spezialisierte und stark typisierte Sammlungen; B. ein Wörterbuch mit verknüpften Listen, ein Bitvektor und Sammlungen, die nur Zeichenfolgen enthalten.
- System.Net
- Definiert Typen, die eine einfache Programmierschnittstelle für eine Reihe von Netzwerkprotokollen bereitstellen .
- System.Net.Sockets
- Definiert einen Typ, der eine verwaltete Implementierung der Windows Sockets (Winsock)-Schnittstelle für Entwickler bereitstellt, die den Zugriff auf das Netzwerk streng kontrollieren müssen.
Reflexionsbibliothek
Die Reflection-Bibliothek bietet die Möglichkeit, die Struktur von Typen zu untersuchen, Instanzen von Typen zu erstellen und Methoden für Typen aufzurufen, alles basierend auf einer Beschreibung des Typs. Es definiert Typen in den folgenden Namespaces:
- System
- Definiert den void type , einen Rückgabewerttyp für eine Methode, die keinen Wert zurückgibt.
- System.Globalisierung
- Definiert einen Typ, der Informationen zu einer bestimmten Kultur bereitstellt (als Gebietsschema für nicht verwaltete Codeentwicklung bezeichnet). Die Informationen umfassen die Namen für die Kultur, das Schriftsystem, den verwendeten Kalender und Formatierungen für Datumsangaben und Sortierzeichenfolgen.
- System.Reflexion
- Definiert Typen, die eine verwaltete Ansicht geladener Typen, Methoden und Felder bereitstellen und Typen dynamisch erstellen und aufrufen können.
- System.Sicherheit.Berechtigungen
- Definiert Typen, die den Zugriff auf Vorgänge und Ressourcen basierend auf Richtlinien steuern. Diese Typen sind für die Reflexion relevant .
XML-Bibliothek
Die XML-Bibliothek bietet einen einfachen Parser im "Pull-Stil" für XML. Es wurde für ressourcenbeschränkte Geräte entwickelt und bietet dennoch ein einfaches Benutzermodell. Es definiert Typen im folgenden Namespace.
- System.Xml
- Definiert Typen für die Verarbeitung von XML .
Erweiterte Array-Bibliothek
Die Extended Array Library bietet Unterstützung für Nicht-Vektor-Arrays. Das heißt, Arrays mit mehr als einer Dimension oder Arrays mit Untergrenzen ungleich null. Die Extended Array Library fügt keine zusätzlichen Typen hinzu, erweitert jedoch den Array-Handling-Mechanismus.
Erweiterte Numerikbibliothek
Die Extended Numerics Library bietet Unterstützung für Gleitkommadatentypen (System.Single, System.Double) und Datentypen mit erweiterter Genauigkeit (System.Decimal). Wie die Basisklassenbibliothek wird diese Bibliothek direkt vom C#-Standard referenziert.
Parallelbibliothek
Die Parallel Library bietet einfachen Programmierern eine einfache Parallelität, sodass Multithread-CPUs ausgenutzt werden können.
Vararg-Bibliothek
Die Vararg-Bibliothek bietet Unterstützung für den Umgang mit Argumentlisten variabler Länge.