2012-07-03 3 views
1

Я просто хотел проверить, правильно ли я понимаю. Возвращаемое значение в get делает возвращаемое значение равным данным частного экземпляра. И установленное значение делает значение общедоступного значения равным значению частного экземпляра. Правильно ли я это понимаю?Set and Get in C#

+0

Я думаю, что это будет АКТУАЛЬНАЯ линия. ** установленное значение делает значение частного экземпляра равным значению общедоступного значения ** Например: set {this.var1 = value;} –

+0

Я предполагаю, что я говорил о свойствах конкретно. Спасибо всем за помощь – user1192890

ответ

4

Если вы свойство определяется как:

private int _value; 
    public int Value 
    { 
     get { return _value; } 
     set { _value = value; } 
    } 

Тогда да, получить возвращает значение частного поля _value и установить в настройке _value но она может быть разной, а также.

public int Value 
     { 
      get { return getCalculatedValue() } 
      set { 
       if (_value > 0) 
       { 
        _value = value; 
       } 
       else 
       { 
        _value = -1; 
       } 
      } 
     } 

В приведенном выше примере, получают возвращается Вам calculatedValue от некоторой функции с именем getCalculatedValue() и установить, заключается в проверке значения для некоторого условия, а затем установить его надлежащим образом.

5

Не всегда.

Get возвращает независимо от того, что разработчик считает, что значение свойства должно быть, и set изменяет все, что разработчик считает подходящим для хранения данных. Часто существует взаимно однозначное сопоставление между свойством и внутренним полем, но не всегда.

int UltimateAnswer {get {return 42;}} // no internal field at all 
int Direct 
{ 
    get {return _direct;} 
    set {_direct = value;} 
} 
int WithConversion 
{ 
    get {return _stored * 100;} 
    set { _stored = value/100;} 
} 
int AutoFiled {get;set;} // this one directly maps to automatically created field.