Я вижу много примеров кода для классов С#, который делает это:
public class Point {
public int x { get; set; }
public int y { get; set; }
}
Или, в более раннем коде, то же самое с явным личным значением поддержки и без новых автоматически реализованных свойств:
public class Point {
private int _x;
private int _y;
public int x {
get { return _x; }
set { _x = value; }
}
public int y {
get { return _y; }
set { _y = value; }
}
}
Мой вопрос - почему. Есть ли какая-либо функциональная разница между выполнением вышеизложенного и просто созданием этих членов публичными полями, например ниже?
public class Point {
public int x;
public int y;
}
Чтобы быть ясным, я понимаю значение getters и seters, когда вам нужно сделать некоторый перевод базовых данных. Но в тех случаях, когда вы просто передаете значения, это кажется излишне подробным.