Синтаксис ниже называется auto properties, это не имеет значения в терминах размера файла поскольку во время компиляции, поля генерируется в любом случае (см, декомпиляция в конце ответа) и есть get
и set
методы в результатах компиляции в обоих случаях.
Авто свойства позволяют сохранить ваш код более организованным и короткие, что хорошо для вашего кода ремонтопригодности и читаемости, поэтому вы должны отдавать предпочтение им, когда это возможно.
Мы оставим в стороне «В поле без автоматической собственности вы можете присвоить значение по умолчанию» тему для второго (also, it is possible now in auto-properties too in c# 6.0), иногда, вы хотите запустить некоторый код внутри get
или set
методов собственности , как применение event
ручки или проверки значения, что там стандартное объявление собственности входит в картину, например:
private int mNumber;
public int Number
{
get
{
return Number;
}
set
{
if (Number == 8)
{
throw new CannotReceive8Exception();
}
else
{
mNumber = value;
}
}
}
Если посмотреть на декомпилированный код этого кода:
public int Number { get; set; }
Вы увидите, что компилятор добавил фон частное поле в любом случае:
Почему бы вам не задать вопрос, который, как вы знаете, не по теме (в противном случае это то, что «извините») и не показывать подробности о ваших исследованиях по этой теме? По крайней мере, изучение собственного имени «автоматических свойств» было бы приятным прикосновением. Я бы рекомендовал прочитать результаты serach - то есть https: //www.bing.com/search? Q = C% 23 + - + свойства + против + автоматические + свойства ... –
Одно небольшое уведомление: в случае A значение по умолчанию для 'Number' равно 1, а в случае B - 0 – nZeus
Да, я инициализировал его 1 для примера. –