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.