Training - Beratung - Projektarbeiten

www.David-Tielke.de

Webcast C# 6.0 – Folge 2: Read Only Auto Properties

Einer der Erweiterungen in C# 6.0, die sehr viel boilerplated Code vermeiden können, sind die Read Only Auto Properties.

Im zweiten Teil der Webcastreihe zu den Erweiterungen aus C# 6.0, widmen wir uns dieser genialien kleinen Erweiterung und zeigen wo sie eingesetzt werden sollte und wo nicht.

Dazu aus der Dokumentation des Roslyn-Projektes:

Auto-properties can now be declared without a setter.
public class Customer
{
    public string First { get; } = "Jane";
    public string Last { get; } = "Doe";
}
The backing field of a getter-only auto-property is implicitly declared as readonly (though this matters only for reflection purposes). It can be initialized through an initializer on the property as in the example above. Also, a getter-only property can be assigned to in the declaring type’s constructor body, which causes the value to be assigned directly to the underlying field:
public class Customer
{
    public string Name { get; }
    public Customer(string first, string last)
    {
        Name = first + " " + last;
    }
}
This is about expressing types more concisely, but note that it also removes an important difference in the language between mutable and immutable types: auto-properties were a shorthand available only if you were willing to make your class mutable, and so the temptation to default to that was great. Now, with getter-only auto-properties, the playing field has been leveled between mutable and immutable.

 

Links

Webcast C# 6.0 - Folge 1: Auto Property Initializers

Ab heute versuche ich regelmäßig Webcasts zu aktuellen Themen auf meinem YouTube-Channel zu veröffentlichen. Das Startthema werden die Neuerungen in C# 6.0 sein, welche ich in ~10 Episoden beleuchten werde.

Heute gibt es den ersten Teil zum Thema "Auto Property Initializers".


Dazu aus der Beschreibung des Roslyn-Teams:

You can now add an initializer to an auto-property, just as you can in a field:
public class Customer
{
    public string First { get; set; } = "Jane";
    public string Last { get; set; } = "Doe";
}
The initializer directly initializes the backing field; it doesn’t work through the setter of the auto-property. The initializers are executed in order as written, just as – and along with – field initializers. Just like field initializers, auto-property initializers cannot reference this – after all they are executed before the object is properly initialized.

Links:

[DWX 2015] Vortragsmaterialien zum Download

Wie in jedem Jahr, wurde auch in diesem Jahr, wieder mit der Developer Week in Nürnberg die größte deutsche Entwicklerkonferenz veranstaltet. An insgesamt drei Tagen wurde, in 10 parallelen Tracks, über aktuelle und zukünftige Technologien gesprochen. Auch ich war mit insgesamt vier Sessions und einem Workshop beteiligt. Wie angekündigt, stelle ich nun hier alle Materialien der Sessions und des Workshops zur Verfügung.

Ich bedanke mich auf diesem Weg noch einmal bei allen Teilnehmern und wünsche viel Erfolg und Spaß bei der Umsetzung der gewonnenen Ideen.

Links
[Session] Composite Components
[Session] .NET Architektur für die Praxis
[Session] Softwarequalität
[Session] .NET 2015
[Workshop] .NET Architektur für die Praxis