C# (C-Sharp) ist eine universelle, streng objektorientierte Programmiersprache, die zwar prinzipiell plattformunabhängig ist, in der Regel aber auf dem .NET Framework aufsetzt.
Charakteristische Merkmale
-
Starke syntaktische Ähnlichkeit mit C++ und Java.
-
Common Type System (CTS). Gemeinsame Datenrepräsentation ermöglicht Interoperabilität mit anderen CTS-basierten Sprachen.
-
Keine explizite Allokation und Freigabe von Speicher durch automatisches Memory Management und Garbage Collection.
-
Keine Speicheradress-Pointer (außer für Interoperabilität mit nativem Code).
-
Schutz vor unsicheren Typumwandlungen.
-
Array Bounds Checking.
-
Komponentenorientierung.
-
Einsetzbarkeit in verteilten Systemen.
-
Unterstützung internationaler Zeichensysteme (Unicode).
-
Language Integrated Queries
(LINQ)
Faktisch ist (Microsoft-)C# eng mit dem .NET Framework verknüpft: Aus dem Sourcecode wird ein Zwischencode (CIL, Common Intermediate Language) erzeugt, der durch eine Laufzeitumgebung (CLR, Common Language Runtime) zur Ausführung gebracht wird.
Unterschiede zu anderen Programmiersprachen:
Zu C++:
-
Kein Preprocessing
-
Keine Templates
-
Keine multiple Vererbung (aber multiple Interfaces)
Zu Java:
-
Operator overloading erlaubt
-
Delegates und Events
-
Native Unterstützung von Properties
Unterschiede zu VB.NET sind relativ gering und hauptsächlich syntaktischer Natur.
Standardisierung
C# ist in den Normen ECMA-334 (4. Fassung 2006) und ISO/IEC 23270 (2003, Revision 2006) standardisiert. Diese Normen spezifizieren Sprachelemente, Syntax und Semantik. In ECMA-335 (6. Fassung 2012) werden die ausführenden Komponenten beschrieben, wie etwa die Architektur von CLI und CTS, Definition und Semantik von Metadaten oder Debugger-Austauschformate.
Implementationen
Die mit Abstand dominierende C#-Implementation ist diejenige von Microsoft. Sie setzt auf dem .NET-Framework auf und bietet mit Visual Studio eine passende integrierte Entwicklungsumgebung. Die aktuelle Version 6.0 der Microsoft C#-Implementation wurde in 2015 zusammen mit dem .NET Framework 4.6 veröffentlicht. Während Version 5.0 mit der Vereinfachung asynchroner Programmierung einige bahnbrechende Neuerungen brachte, enthält Version 6.0 eher eine Vielzahl kleiner aber hilfreicher Verbesserungen etwa zur syntaktischen Verkürzung.
Literatur
Albahari, Ben und Albahari, Joseph: C# 6.0 in a Nutshell. The Definitive Reference, O’Reilly, 2015.
Kühnel, Andreas: C# 6 mit Visual Studio 2015: Das umfassende Handbuch, Rheinwerk Verlag, 2016.