C# 6.0 – Read-Only Auto-Properties vom Konstruktor initialisieren

In C# 6.0 hat Microsoft die Möglichkeit geschaffen, Read-Only Auto-Properties vom Konstruktor zu initialisieren. Auch dann, wenn diese keinen direkten Setter haben. Hierbei gibt es zwei Möglichkeiten. Die eine ist die direkte Initialisierung bei der Definition der Eigenschaft. Die andere ist vom Konstruktor aus. Und dies würde so aussehen:

public DateTime CreationTime { get; } = DateTime.Now;

Und hier noch die direkte Initialisierung vom Konstruktor aus:

public class MyObject
{
    public string Name { get; }
 
    public MyObject(string name)
    {
        Name = name;
    }
}

So wird ungewolltes überschreiben noch besser verhindert.

C# 6.0 – Ausnahmen filtern

Mit C# 6.0 hat Microsoft wieder einige neue Funktionalitäten hinzugefügt, die das Schreiben von Quellcode nicht nur erleichtern sondern auch übersichtlicher gestalten. Eine dieser Neuerungen in C# 6.0 ist das sogenannte „Exception filtering“ mit dem es möglich ist, auftretene Ausnahmen nur unter bestimmten Bedingungen abzufangen und andernfalls einfach durchzulassen. Das Abfangen einer Exception unter bestimmten Bedingungen könnte zum Beispiel wie folgt aussehen:

try
{
	int x = 5 / 0;
}
catch (DivideByZeroException ex) if (DateTime.Now.DayOfWeek != DayOfWeek.Saturday)
{
	Console.WriteLine(ex.Message);
}

Hier wird die Ausnahme an jedem Wochentag abgefangen außer Samstags. Wenn wir also einen Samstag haben, wird die Exception in diesem Fall normal weiter gegeben bis jemand diese abfängt oder die Applikation abstützt.