© best_vector/Shutterstock.com
Tipps und Tricks rund um .NET und Visual Studio

Kolumne: .NETversum


C# 6.0 und Visual Basic 14 in älteren .NET-Projekten nutzen

Microsoft hat in den Programmiersprachversionen C# 6.0 und Visual Basic 14, die mit .NET Framework 4.6 ausgeliefert werden, einige syntaktische Zuckerstückchen ergänzt, z. B.

  • Automatische Properties mit Zuweisung

  • Read-only Automatic Properties

  • Null-Propagating Operator ?

  • Operator nameof

  • String-Interpolation

Nicht alle .NET-Softwareentwickler können aber sofort auf .NET Framework 4.6 umsteigen. Die gute Nachricht: Fast alle neuen C#-6.0-/Visual-Basic-14-Sprachfeatures laufen auch in älteren .NET-Versionen – bis hinunter zu .NET 2.0. Voraussetzung ist nur, dass eine Kompilierung mit Visual Studio 2015 erfolgt. Der dort enthaltene neue C#-/Visual-Basic-Sprachcompiler setzt im Rahmen der .NET Compiler Platform Roslyn die neuen Sprachbefehle in Intermediate Language (IL) um, die kompatibel zu allen .NET-Versionen ab .NET 2.0 ist. Zudem brauchen fast alle neuen Sprachfeatures keine Klassen aus der .NET-Klassenbibliothek, die es nicht auch in .NET 2.0 schon gegeben hat.

Ein C#-6.0-Sprachfeature erfordert aber zumindest .NET Framework Version 4.5: das Schlüsselwort await in Catch- und Finally-Blöcken. Die für das Schlüsselwort await notwendigen Klassen gibt es erst ab .NET Framework 4.5.

Einsatz der dynamischen Typisierung in C#

Dynamische Programmiersprachen wie JavaScript und Python haben in den letzten Jahren viel Zulauf bekommen. Diesem Trend kann sich auch C# nicht entziehen und hat in Version 4.0 dynamische Programmierung als Option eingeführt; grundsätzlich bleibt C# aber eine statisch typisierte Programmiersprache.

Dynamische Programmierung erleichtert die Arbeit mit COM-Objekten und die Zusammenarbeit mit dynamischen .NET-Sprachen wie IronPython. Zudem gibt es auch Situationen im Programmieralltag, wo dynamische Programmierung eine willkommene Abkürzung ermöglichen kann.

Um für eine Variable dynamische Typisierung zu erstellen, ist diese mit dem Typ dynamic zu deklarieren. Dies verschiebt die mit dieser Variablen einhergehende Typprüfung auf die Laufzeit. Wird beispielsweise über eine mit dynamic deklarierte Variable eine Methode aufgerufen, erfolgt die Prüfung, ob diese auch vorhanden ist, erst im Zug des Aufrufs zur Laufzeit. Schlägt eine solche Prüfung fehl, wird dies mit einer RuntimeBinderException angezeigt.

Listing 1 demonstriert den Einsatz des Schlüsselworts dynamic. Die Klassen Kunde und Lieferant besitzen keine gemeinsame Basisklasse, aber eine ähnliche Struktur: Beide haben jeweils...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang