<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Common_Language_Specification</id>
	<title>Common Language Specification - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Common_Language_Specification"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Common_Language_Specification&amp;action=history"/>
	<updated>2026-05-19T07:46:20Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Common_Language_Specification&amp;diff=106050&amp;oldid=prev</id>
		<title>imported&gt;Aka: /* Umsetzung der Common Language Specification */ Komma ergänzt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Common_Language_Specification&amp;diff=106050&amp;oldid=prev"/>
		<updated>2024-12-07T18:07:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Umsetzung der Common Language Specification: &lt;/span&gt; Komma ergänzt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Die &amp;#039;&amp;#039;&amp;#039;Common Language Specification&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;CLS&amp;#039;&amp;#039;&amp;#039;) ist ein Teil des [[Common Language Infrastructure|Common-Language-Infrastructure]]-Standards, der die Entwicklung von [[programmiersprache]]nneutralen Programmkomponenten ermöglicht.&lt;br /&gt;
Die CLS garantiert, dass jedes Programm bzw. jeder Programmteil (z.&amp;amp;nbsp;B. eine einzelne Klasse), der CLS-konform entwickelt worden ist, in jeder anderen CLS-kompatiblen Programmiersprache vollständig genutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
== Konzept der Common Language Specification ==&lt;br /&gt;
Als Teil der programmiersprachenneutralen Plattform einer [[Common Language Infrastructure|Common-Language-Infrastructure]]-Implementierung (z.&amp;amp;nbsp;B. das [[.Net-Framework]] von [[Microsoft]]) ist es notwendig, die Interaktion zwischen verschiedenen Programmiersprachen zu regeln.&lt;br /&gt;
Da nicht jede Programmiersprache denselben Funktionsumfang bietet, ist eine sprachübergreifende Programmierung nicht automatisch möglich.&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Umsetzung der Common Language Specification ==&lt;br /&gt;
Die meisten Programmiersprachen aus dem .NET-Umfeld erlauben es dem Entwickler zu wählen, ob er seine Programme oder Programmkomponenten CLS-kompatibel entwickeln will.&lt;br /&gt;
Dazu wird meist das Metadatenattribut [ClsCompliant (true)] verwendet, das den Compiler (z.&amp;amp;nbsp;B. von [[C-Sharp|C#]] oder [[VB.NET]]) anweist, bei der Kompilierung zu prüfen, ob die CLS eingehalten wurde. Ist dies nicht der Fall, wird ein Compilerfehler erzeugt.&lt;br /&gt;
&lt;br /&gt;
Alle Teile der Klassenbibliotheken von .NET sind CLS-kompatibel.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Vorzeichenlose Datentypen, wie z.&amp;amp;nbsp;B. uint, ulong.&lt;br /&gt;
* Elemente (Klassen, Methoden, Felder usw.), die sich nur durch eine unterschiedliche Großschreibung ihres Namens unterscheiden.&lt;br /&gt;
* Pointer (Zeiger) und alle anderen damit in Verbindung stehenden Konstrukte und Sprachelemente (im Kontext von .NET als „unsafe“ bezeichnet).&lt;br /&gt;
* Globale statische Methoden&lt;br /&gt;
* Interfaces mit statischen Methoden oder Feldern&lt;br /&gt;
* Klassen, die nicht von CLS-kompatiblen Klassen erben&lt;br /&gt;
* Arrays variabler Größe oder Arrays, die nicht bei Element 0 beginnen&lt;br /&gt;
* Überladen von Feldern und Ereignissen&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* http://www.ecma-international.org/publications/standards/Ecma-335.htm – CLI Standard bei der [[European Computer Manufacturers Association|ECMA]]&lt;br /&gt;
* https://www.iso.org/standard/36769.html – CLI Standard bei der [[International Organization for Standardization|ISO]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:.NET]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Aka</name></author>
	</entry>
</feed>