Зачем использовать поля, если есть свойства? - C#
Формулировка задачи:
Приветствую.
Объясните новичку: для чего нужно использовать поля, если есть такая штука, как свойства? Попробую добавить конкретики.
Есть вариант использовать приватное поле + два метода (геттер+сеттер):
Есть вариант использовать приватное поле + свойство:
И есть вариант использовать только свойство:
Появляется совершенно очевидный вопрос: зачем использовать первые два варианта, если последний куда как короче и яснее? Да, работа с полями может быть быстрее, но имеет ли это большое значение при работе на современном железе и, в конце концов, с языком С# (не чистый Си, ориентированный на скорость)?
На всякий случай, чтобы предотвратить недопонимание: я не знаю, почему и в каких случаях первые два варианта могут оказаться выгодными и совершенно ничего не утверждаю. Я хочу изучить язык и прошу помощи
private int variable;
public int getVariable()
{
return variable;
}
private void setVariable(int newVariable)
{
variable = newVariable;
} private int variable;
public int Variable
{
get
{
return variable;
}
private set
{
variable = value;
}
} public int Variable { get; private set; }Решение задачи: «Зачем использовать поля, если есть свойства?»
textual
Листинг программы
class foo{
private:
int FBar;
protected:
void SetBar(int aBar){
//SetterCode here
};
public:
__property int Bar={read=FBar, write=SetBar}; // при чтении оверхед отсутствует, а при записи его не избежать по логике задачи
};