Если бы я сделал что-то вроде этого:
public int Foo
{
get
{
return GetFoo() + 5;
int GetFoo() => 3;
}
}
Это на самом деле скомпилируется, что заставляет меня задуматься, будет ли это хорошей или плохой практикой.
Теперь, очевидно, этот конкретный пример может быть преобразован в: public int Foo => 8;
, но в других случаях может быть несколько локальных методов и выполнение каких-либо задач в основной части get
.
Помнятот факт, что C # фактически перемещает GetFoo
вне свойства или метода, в котором он находится, всякий раз, когда код компилируется, это должно иметь примерно ту же производительность, что и свойство, вызывающее обычный метод.
Однако, Если вы чувствуете необходимость использовать локальные функции в свойстве, является ли это признаком того, что свойство выполняет слишком много работы и должен быть методом вместо этого?