Definition „C-Sharp“

Was ist C#?

| Autor / Redakteur: Pyrocco / Stephan Augsten

Als .NET-orientierte Programmiersprache ist C# ist eng mit Microsoft-Lösungen integriert, beispielsweise Visual Studio Code.
Als .NET-orientierte Programmiersprache ist C# ist eng mit Microsoft-Lösungen integriert, beispielsweise Visual Studio Code. (Bild: Microsoft)

C# ist eine moderne, objektorientierte und typsichere Programmiersprache. Sie integriert sich in .NET-Plattformen, die Cross-Development für Anwendungen für Windows, macOS, iOS, Android und Linux ermöglichen.

C# wurde Anfang der 2000er Jahre als systemeigene Programmiersprache für Microsofts .NET-Plattformen entwickelt. Die .NET-Plattformen bieten Programmiersprachen, Werkzeuge und Technologien zur Entwicklung und Ausführung von Softwareanwendungen.

Microsoft definiert mit der Common Language Specification (CLS) einen Sprachumfang, den alle .NET-Programmiersprachen erfüllen müssen. C# erfüllt die CLS. In der Spezifikation wird eine Mindestmenge von Typen und Klassenbibliotheken aufgeführt, deren Verfügbarkeit der Compiler erwartet.

CLS-konformer Programmiercode verschiedener Sprachen lässt sich dabei mischen. Entwickler können einen Teil einer Anwendung in C# und einen anderen Teil in einer anderen .NET-Sprache (z.B. Visual Basic .NET) schreiben. Die Entwicklungsumgebung, die Bibliotheken und das objektorientierte Entwicklungsmodell werden dabei beibehalten.

Entwicklungsumgebung Visual Studio

Mit Visual Studio stellt Microsoft eine integrierte Entwicklungsumgebung (IDE) zur Verfügung, mit der .NET-Anwendungen in CLS-Sprachen entwickelt werden können. Visual Studio unterstützt Entwicklung von Desktop-, mobilen und Webanwendungen in Visual Basic, C, C++, C#, Python, JavaScript u.a.

.NET Framework

.NET-Anwendungen gründen auf den Programmierschnittstellen des .NET Frameworks. Dieses Framework stellt die Klassenbibliotheken, den Compiler und die Laufzeitumgebung zur Ausführung von .NET-Anwendungen zur Verfügung.

Der geschriebene Quellcode wird in einen Zwischencode, die Common Intermediate Language (CIL), übersetzt. Jedes Betriebssystem mit .NET-Unterstützung hat seine eigene .NET-Laufzeitumgebung namens Common Language Runtime (CLR). Die CLR verwaltet den Speicher, verarbeitet Objektreferenzen und führt die Just-In-Time-Kompilierung (JIT) des CIL-Codes durch.

Die CLR ist damit eine virtuelle Maschine, d.h. ein System, das Programme auf einem Betriebssystem zum Laufen bringt, die nicht nativ auf diesem laufen würden. Die CLR sorgt dafür, dass ein und derselbe Code auf unterschiedlichen Betriebssystemen ausgeführt werden kann.

Durch die CLR ist die Ausführung von C#-Programmen auch sicherer als von Programmen, die den Speicher selbst verwalten müssen. Daher wird auf .NET-Basis entwickelter Code als verwalteter („managed“) Code bezeichnet.

Spracheigenschaften

C# ist eine universelle, objektorientierte Programmiersprache, die ursprünglich entwickelt wurde, um die Entwicklung von Windows-Anwendungen zu vereinfachen. Die Ähnlichkeiten zwischen C# und der C-Sprachfamilie sowie Java sollen Entwicklern mit einem Hintergrund in objektorientierten Sprachen den Einstieg erleichtern. Zudem wurden moderne Eigenschaften der Sprache Java eingebracht, wie Portabilität und automatische Speicherverwaltung (Garbage Collection).

Durch das .NET Framework verfügt C# ähnlich wie Java über eine umfangreiche Klassenbibliothek, die beispielsweise Verschlüsselung, TCP/IP-Socket-Programmierung und die Erstellung grafischer Oberflächen unterstützt. Ausnahmebehandlung (Exception Handling), verschiedene Arten von Polymorphismus und die Trennung von Schnittstellen und Implementierung sind weitere Eigenschaften von C#.

Polymorphismus

Im Gegensatz zu C++ unterstützt C# keine Mehrfachvererbung. Eine Klasse kann aber beliebig viele Schnittstellen implementieren. Auch dies reduziert Fehlerquellen und vereinfacht die architektonischen Anforderungen an das .NET Framework.

Zeiger

C# rät auch von der expliziten Verwendung von Zeigern ab. Die Sprache nimmt hierbei eine Zwischenstellung zwischen C++ und Java ein, das keine Zeiger vorsieht. Deren Nutzung kann bei Programmierfehlern leicht den Systemspeicher korrumpieren und zu Abstürzen führen.

In C# können Zeiger nur in Blöcken verwendet werden, die explizit als unsicher gekennzeichnet sind. Programme mit unsicherem Code benötigen zum Ausführen entsprechende Berechtigungen. Objektzugriff erfolgt meistens über sichere Objektreferenzen, die entweder immer auf ein „lebendes“ Objekt verweisen oder den genau definierten Nullwert haben. Es ist unmöglich, einen Verweis auf ein nicht existentes Objekt oder auf einen zufälligen Speicherblock zu erhalten.

C# ist eine Sprache mit strenger Typisierung, um Fehler durch Typkonvertierung zu vermeiden. Array-Grenzen werden automatisch geprüft. Variablen müssen initialisiert werden. Durch automatische sog. Garbage Collection, die nicht mehr genutzten Speicher freigibt, wird der Programmierer von der Verantwortung für Speicherfreigabe befreit.

Cross-Development mit .NET Core und Mono

Microsofts in Aufbau befindliche .NET Core-Plattform macht .NET-Programm neben Windows auch auf MacOS und verschiedenen Linux-Distributionen nutzbar. .NET Core ist ein Open Source-Modernisierungsprojekt zentraler Komponenten des .NET Frameworks. Ziel ist vereinfachte Anwendungsentwicklung, verbesserte Modularität und größere Plattformunabhängigkeit.

Mono ermöglicht als alternative Open Source-Implementierung des .NET Frameworks die Entwicklung plattformunabhängiger Software auf Basis der Common Language-Infrastruktur und C#. Mit Mono laufen Programm, die für die .NET-Umgebung erstellt wurden, auch auf macOS, iOS, Android und Linux.

Ende 2020 sollen .NET Framework, .NET Core und Mono unter der Bezeichnung .NET 5.0 zu einer einheitlichen Plattform zusammengeführt werden.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 46022456 / Definitionen)