Re[2]: .NET 10 улучшения
От: karbofos42 Россия  
Дата: 04.05.25 08:36
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S>Thus, C# 14 introduces extension blocks.


Какая же дичь... Какой-то блок внутри класса, чтобы сэкономить на спичках.
Не знаю насколько реализуемо, но удобнее было бы что-то типа:
public static class Extensions extend IEnumerable<int>
{
  public IEnumerable<int> WhereGreaterThan(int threshold)
    => this.Where(x => x > threshold);

  public bool IsEmpty
    => !this.Any();
  }
}

Их этот блок extension внутри класса как-то так себе выглядит и больше походит на высасывание синтаксического сахара, чтобы было.

S>Null-conditional assignment


Тоже как-то такое себе. По-моему это не такой уж частый случай, чтобы нужно было оптимизировать в плане написания.
А вот с поисками багов подозреваю, что будут проблемы.
Имелся опыт на проекте, где любили наркоманские свойства вида:
public int Value
{
  get { CalcValue(); }
  set {}
}

и:
public int Value
{
  get { return _value; }
  set
  {
    if (value < 0) return;
    _value = value;
  }
}

Меня это дико бесило и переделывал нормально, где дотягивались руки (периодически выплывали баги, т.к. разработчики по привычке не смотрели что у свойства пустой сеттер или он не всегда значения меняет, а потом удивлялись чего это они записывают в него одно значение, а фактически оказывается другое).
Тут конечно не такая наркомания, но сомневаюсь, что предлагаемая конструкция будет правильно читаться и не получится так, что ей просто NRE заглушится и ошибка тихо улетит куда-то дальше.
Отредактировано 04.05.2025 12:24 karbofos42 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.