Expression bodied members

Wanneer je methoden, constructors of properties schrijft waar exact 1 expressie (1 lijn code die een resultaat teruggeeft) nodig is dan kan je gebruik maken van de expression bodied member syntax (EBM).

Deze is van de vorm:

member => expression

Dankzij EBM kan je veel kortere code schrijven.

Ik toon telkens een voorbeeld hoe deze origineel is en hoe deze naar EBM syntax kan omgezet worden.

Methoden en EBM

Origineel:

public void ToonGeboortejaar(int geboortejaarIn)
{
    Console.WriteLine(geboortejaarIn);
}

Met EBM:

public void ToonGeboortejaar(int geboortejaarIn)
                     => Console.WriteLine(geboortejaarIn);

Nog een voorbeeld, nu met een return. Merk op dat we return niet moeten schrijven:

public int GeefGewicht()
{
    return 4 * 34;
}

Met EBM:

public int GeefGewicht() => 4 * 34;

Constructors en EBM

Ook constructors die maar 1 expressie bevatten kunnen korter nu. Origineel:

internal class Student
{
    public int Geboortejaar {get;set;}
    public Student(int geboorteJaarIn)
    {
        Geboortejaar = geboorteJaarIn;
    }
}

Met EBM wordt dit:

internal class Student
{
    public int Geboortejaar {get;set;}
    public Student(int geboorteJaarIn) => Geboortejaar = geboorteJaarIn;
}

Full Properties met EBM

Properties worden een soort mengeling tussen full en auto-properties:

private int name;
public int Name
{
    get => name;
    set => name = value;
}

Read-only properties met EBM

Bij read-only properties hoeft het get keyword zelfs niet meer getypt te worden bij EBM:

private int name;
public int Name => name;

Uiteraard had voorgaande zelfs nog korter geweest met behulp van een auto-property.

Last updated