Common Language Specification (CLS)
Eintrag zuletzt aktualisiert am: 15.06.2009
Die Common Language Specification (CLS) ist ein Regelwerk für Autoren von
Compilern, das festlegt, wie die Umsetzung in die Microsoft
Intermediation Language (
MSIL) erfolgen muss. Die CLS legt auch fest, wie ein
Application Programming Interface (
API) aufgebaut sein muss, um im Rahmen des
.NET Frameworks genutzt zu werden.
.NET-Komponenten dürfen nach außen (also in außerhalb der
Assembly zugänglichen Klassen/Schnittstellen) nur CLS-konforme Typen aus dem
Common Type System (
CTS) verwenden. Intern dürfen auch andere Typen verwendet werden.
Es gibt insgesamt 41 CLS-Regeln, von denen die meisten sich auf das
CTS beziehen.
Verboten gemäß CLS sind u.a.:
- Vorzeichenlose Datentypen, wie z. B. uint, ulong.
- Bezeichner für Klassen, Methoden, Attribute, usw., die sich nur durch eine unterschiedliche Groß- und Kleinschreibung unterscheiden.
- Globale statische Methoden
- Schnittstellen mit statischen Methoden oder Feldern
- Klassen, die nicht von CLS-kompatiblen Klassen erben
- Arrays variabler Größe oder Arrays, die nicht bei Element 0 beginnen
- Überladen von Attributen und Ereignissen
- Zeiger ("Pointer")
Weitere Informationen zur CLS finden Sie im
CLI-Standard.
Tipp: Ein Entwickler kann mit der
Annotation [
Assembly: System.CLSCompliant(true)] deklarieren, dass eine
Softwarekomponente nur CLS-kompatible Typen veröffentlichen darf. Bei Mißachten dieser Regel erzeugen die
Compiler von Visual Basic und C# eine Warnung. Einzelne Klassen oder Klassenmitglieder kann man mit [System.CLSCompliant(false) von der Prüfung ausnehmen.