Страницы

Поиск по вопросам

понедельник, 10 февраля 2020 г.

Разница get; set;

#c_sharp #c_sharp_faq


Не совсем понял разницу между  

public object Variable1 {get; set; } 


и  

public object Variable1
{
    get { return this.Variable1; }  
    set {this.Variable1 = value; }   
}


В обоих случаях это свойство. Отличается ли не обработанные геттер и сеттер от обработанных
таким образом?
    


Ответы

Ответ 1



В том виде, который привели вы, разница в том, что первый пример кода корректный, а второй - нет :) У вас во втором случае чтение свойства возвращает это же свойство, что приводит к возврату этого же свойства - и так до бесконечности. Как заметили в комментариях, это бесконечная рекурсия. Вероятно, вы имели в виду вот это: private object field1; public object Variable1 { get { return field1; } set { field1 = value; } } Вот в этом случае разницы нет, public object Variable1 {get; set; } - это автоматически реализуемое свойство, по смыслу - абсолютно тоже самое.

Комментариев нет:

Отправить комментарий