Expression-bodied members (C# programming guide)
Очередной пересказ документации 😉
Expression-body - возможность реализовать тело члена класса в очень лаконичной форме. Другими словами - это тело метода в виде одного выражения, которое может возвращать знаыение. Синтаксис чем-то напоминает определение лямбд.
Может применяться для реализации следующих членов класса:
class Plant
{
private string Name;
public void PrintName() => Console.WriteLine(f"Plant Name: {Name}");
public int SortOrder() => 3;
}
// or with simple Math functions
class MyMath
{
public double Add(double x1, double x2) => x1 + x2;
public double Div(double x1, double x2) => x1 / x2;
...
}
class Plant
{
private string internalNameVariable;
// для read-only свойств - очень короткий формат геттера
public string Name() => internalNameVariable;
// или полный формат для геттера и сеттера
public string PlantName
{
get => internalNameVariable;
set => internalNameVariable = value;
}
}
class Plant
{
private string internalNameVariable;
public Plant(string name) => internalNameVariable = name;
}
class PlantPool
{
~Destroyer() => Console.WriteLine("Todo Something...");
}
Используем пример из статьи C# vs Java. Indexers и перепишем с использованием expression-body
class PlantPool
{
private Plant[] plantPool { get; init; }
public PlantPool(int Capacity) { this.plantPool = new Plant[Capacity]; }
public Plant this[int i]
{
get => plantPool[i];
set => plantPool[i] = value;
}
}
Java так не имеет.