Я ценю этот вопрос немного глупо, поэтому заранее прошу прощения, если это не по теме или неконструктивно.
Почему в C # это стандартное соглашение * определять свойства с помощью getter перед setter? Для свойств с обоими вы почти всегда будете использовать установщик перед получателем, поэтому он находится в допустимом состоянии. Поэтому мне кажется немного отсталым, что мы сначала определяем геттер.
Кроме того, сеттер обычно имеет некоторую логику валидации, которая ему не нужна. Разве не было бы уместнее иметь эту логику перед геттером, чтобы прояснить, как должно вести себя свойство. Например:
public decimal Price
{
get { return _price; }
set
{
if(value < 0m)
{
throw new ArgumentOutOfRangeException();
}
_price = value;
OnPropertyChanged("Price");
}
}
Код в установщике гораздо интереснее, чем в геттере, не должен ли он иметь приоритет и быть определен первым?
* Я знаю, что с этими вещами нет никаких правил, но практически каждый пример когда-либо свойств определяет геттер перед сеттером.