Common Language Specification - LinkFang.de





Common Language Specification


Die Common Language Specification (CLS) ist ein Teil des Common Language Infrastructure-Standards, der die Entwicklung von programmiersprachenneutralen Programmkomponenten ermöglicht. Die CLS garantiert, dass jedes Programm bzw. jeder Programmteil (z. B. eine einzelne Klasse), der CLS-konform entwickelt worden ist, in jeder anderen CLS-kompatiblen Programmiersprache vollständig genutzt werden kann.

Konzept der Common Language Specification

Als Teil der programmiersprachenneutralen Plattform einer Common Language Infrastructure-Implementierung (z. B. .NET von Microsoft) ist es notwendig, die Interaktion zwischen verschiedenen Programmiersprachen zu regeln. Da nicht jede Programmiersprache denselben Funktionsumfang bietet, ist eine sprachübergreifende Programmierung nicht automatisch möglich. Die CLS spezifiziert aus diesem Grund eine Teilmenge des CLI-Standards, der von jeder CLS-kompatiblen Programmiersprache mindestens verstanden werden muss, um Sprachneutralität herzustellen. Die Regeln der CLS gelten dabei immer nur für öffentliche (public oder protected) Schnittstellen. In der internen Realisierung gelten keinerlei Einschränkungen durch die CLS.

Umsetzung der Common Language Specification

Die meisten Programmiersprachen aus dem .NET-Umfeld erlauben es dem Entwickler zu wählen, ob er seine Programme oder Programmkomponenten CLS-kompatibel entwickeln will. Dazu wird meist das Metadatenattribut [ClsCompliant (true)] verwendet, das den Kompiler (z. B. von C# oder VB.NET) anweist bei der Kompilierung zu prüfen ob die CLS eingehalten wurde. Ist dies nicht der Fall, wird ein Kompilerfehler erzeugt.

Alle Teile der Klassenbibliotheken von .NET sind CLS-kompatibel.

Beispiele

Folgende Liste enthält einige Beispiele von nicht CLS-kompatiblen Elementen. Diese können zwar Teil der Implementierung sein, dürfen aber nicht als Teil der öffentlichen Schnittstellen eingesetzt werden.

  • Vorzeichenlose Datentypen, wie z. B. uint, ulong.
  • Elemente (Klassen, Methoden, Felder usw.), die sich nur durch eine unterschiedliche Großschreibung ihres Namens unterscheiden.
  • Pointer (Zeiger) und alle anderen damit in Verbindung stehenden Konstrukte und Sprachelemente (im Kontext von .NET als „unsafe“ bezeichnet).
  • Globale statische Methoden
  • Interfaces 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 Feldern und Ereignissen

Weblinks


Kategorien: .NET

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Common Language Specification (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.