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