C# 6: Await in catch and finally blocks

Das mit C# 5 eingeführte Keyword await war in catch und finally Blöcken nicht möglich. Es mussten also Workarounds implementiert werden. Mit C#6 ändert sich dies, wie das nachfolgende Beispiel zeigt. static async void ProcessDataAsync() { try { DoSomethingErroneous(); } catch (Exception e) { await ReportErrorAsync(e); } } Viel Spaß :) Viele weitere Neuerungen finden …

C# 6: Using static

Eine weitere Neuerung in C# 6 ist using static. Dies ermöglicht den Import statischer Klassen und die Verwendung der verfügbaren Member ohne voll qualifizierter Angabe. Hier ein Beispiel: using static System.Math; class Program { static void Main(string[] args) { System.WriteLine(Cos(3)); } } Auch der Import von enums ist möglich: using static System.Environment; using static System.Environment.SpecialFolder; …

C# 6: String Interpolation

String.Format ist eine der ersten Funktionen, die beim Erlernen von einer Sprache unter .NET zum Einsatz kommt. Damit kann man sich ja quasi ein Template mit Platzhaltern definieren. In diese Platzhalter werden dann Werte eingefügt und – falls angegeben – entsprechend formatiert. Das ist bei einem Wert oder zweien nicht so schlimm, kann aber bei …

C# 6: nameof Expression

nameof ist eine richtig hilfreiche Sache um all diese magischen Strings aus dem Sourcecode raus zu bekommen. Gerade zu WPF-Zeiten waren entsprechende Workarounds besonders in Zusammenhang mit INotifyPropertyChanged etc. gefragt. Hier ein solches Beispiel: public class Person : INotifyPropertyChanged { private string firstName; public string FirstName { get { return firstName; } set { firstName …

C# 6: Auto-Property Initializers

In C# 3 wurden die Auto-Implemented Properties eingeführt. Auf Deutsch besitzen sie den wohlklingenden Namen Automatisch implementierte Eigenschaften. Sie werden so definiert: public DateTime CreateDate { get; set; } Dabei erstellt der Compiler im Hintergrund ein “unsichtbares” Attribut, welches einen etwaigen Wert enthält. Nun ist es aber unpraktisch, einer derartigen Eigenschaft einen Default-Wert zu verpassen: …

C# 6: Null-conditional Operator

Wer kennt es nicht, das ständige Prüfen auf null bevor auf Eigenschaften zugegriffen oder Methoden ausgeführt werden. Damit wollen wir eine NullReferenceException möglichst vermeiden. Diese Prüfungen sehen etwa wie folgt aus: Person firstPerson = null; var newAddress = new Address(); if (firstPerson != null) { firstPerson.Relocate(newAddress); } Weit schlimmer sieht das bei komplexeren Objektbäumen/Datenstrukturen aus. …

Cookie-Einstellungen
Auf dieser Website werden Cookie verwendet. Diese werden für den Betrieb der Website benötigt oder helfen uns dabei, die Website zu verbessern.
Alle Cookies zulassen
Auswahl speichern
Individuelle Einstellungen
Individuelle Einstellungen
Dies ist eine Übersicht aller Cookies, die auf der Website verwendet werden. Sie haben die Möglichkeit, individuelle Cookie-Einstellungen vorzunehmen. Geben Sie einzelnen Cookies oder ganzen Gruppen Ihre Einwilligung. Essentielle Cookies lassen sich nicht deaktivieren.
Speichern
Abbrechen
Essenziell (1)
Essenzielle Cookies werden für die grundlegende Funktionalität der Website benötigt.
Cookies anzeigen