.NET Framework

Knowledge Base

.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