Свойства в C# или аналогичные set/get в Java. Они ведь чаще всего выглядят так
class A {
private int x;
public int X
{
get {return x;}
set { x = value;}
}
ну и в Яве аналогично.
Я не говорю — всегда. Но в большинстве случаев так.
В итоге посмотришь на некий класс — сотни строк. А разберешься — структура (в смысле С) из десятков двух полей плюс эти свойства.
А почему бы не ввести в язык "генерируемое по умолчанию свойство" ? Например, есть поле x — неявно в классе уже есть свойство X с соответсвующим кодом (см. выше).
Устраивает — пользуйтесь. Не устраивает — перекройте, явное описание отменяет неявное.
А с помощью аттрибутов (аннотаций) можно пометить поле как несоздающее свойство. Или весь класс пометить.
В IDE есть средства для автоматической генерации таких свойств. Почему не перенести эту генерацию в компилятор и не создавать эти сотни лишних строк вообще ?