Свойства, помещенные в заголовок объявления класса, удобны, если вам нужно хранить простые свойства в классе, и вы хотите инициализировать их через аргументы конструктора с теми же именами. Если вы используете их, вы отказываетесь от возможности давать им настраиваемые установщики и получатели - это можно сделать только для свойств в теле класса.
В противном случае реализация по умолчанию для их получателей (и установщиков для var
s) такая же, как и для свойств в теле класса. Они просто возвращают (и устанавливают) значение поля поддержки.
Редактировать, следуя комментариям выше: это также означает, что свойства в конструкторе всегда должны быть инициализированы, они не могут быть вычисляемыми свойствами, так как вы не можете дать им методы получения и установки, которые не будут использоваться их поле поддержки.