.NET Framework
Common Type System (CTS)
Das Common Type System (CTS) ist ein wesentlicher Bestandteil der Common Language Infrastructure (CLI) Spezifikation. Da das .NET Framework eine Implementierung der CLI ist, ist das CTS auch wesentlicher Bestandteil des .NET Frameworks.
Es spezifiziert die möglichen Basistypen und deren Repräsentation im Speicher sowie alle möglichen Programmierkonstrukte und Operationen.
Das .NET Framework kennt aktuell 5 verschiedene Typen:
- Klasse (class)
- Schnittstelle (interfaces)
- Struktur (structure)
- Aufzählung (enumeration)
- Delegate
Dies ist eine wesentliche Voraussetzung zur möglichen Interaktion von Programmen und Bibliotheken, die mit unterschiedlichen Programmiersprachen (einer CLI Implementierung) geschrieben worden sind, z. B. wird ein String in der Programmiersprache C# und in der Programmiersprache VB.NET im Speicher genau gleich repräsentiert und dementsprechend muss es keine Konvertierung (die je nach Typ fehleranfällig oder ungenau ist) geben.
Tatsächlich schränkt die Common Language Infrastructure (CLI) die Anzahl der zu implementierenden Basistypen und zu implementierenden Programmierkonstrukte für eine Programmiersprache durch die Common Language Specification (CLS) vgl. stark ein - verlangt aber, dass jede Programmiersprache die Common Language Specification (CLS) umsetzt - so dass gewährleistet ist, dass eine Bibliothek der Sprache X auch in der Sprache Y verwendet werden kann, insofern die Bibliothek selbst CLS kompatibel (CLS compliant) programmiert wurde.
Die Common Language Specification (CLS) ist also eine Untermenge des Common Type Systems (CTS).
Das CTS kennt folgende (Wert-)Datentypen:
CTS Datentyp |
C# Schlüsselwort |
VB.NET Schlüsselwort |
System.Byte |
byte |
Byte |
System.SByte |
sbyte |
SByte |
System.Int16 |
short |
Short |
System.Int32 |
int |
Integer |
System.Int64 |
long |
Long |
System.UInt16 |
ushort |
UShort |
System.UInt32 |
uint |
UInteger |
System.UInt64 |
ulong |
ULong |
System.Single |
float |
Single |
System.Double |
double |
Double |
System.Char |
char |
Char |
System.String |
string |
String |
System.Decimal |
decimal |
Decimal |
System.Boolean |
bool |
Boolean |