Я вижу много примеров кода для классов C #, которые делают это:
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;
}
Чтобы быть ясным, я понимаю ценность геттеров и сеттеров, когда вам нужно сделать некоторый перевод базовых данных. Но в случаях, когда вы просто передаете значения, это кажется излишне многословным.