Ответ 1
Да, метод 1 является ярлыком метода 2. Я предлагаю использовать метод 1 по умолчанию. Если вам нужна дополнительная функциональность, используйте метод 2. Вы также можете указать различные модификаторы доступа для get и set.
Я изучаю С#, и я узнаю о том, как сделать поля приватными для класса и использовать Getters и Setters для раскрытия методов вместо значений полей.
Являются ли get; set;
в методе 1 и методе 2 эквивалентными? например является одним сокращением другого?
class Student
{
// Instance fields
private string name;
private int mark;
// Method 1
public string Name { get; set; }
// Method 2
public int Mark
{
get { return mark; }
set { mark = value; }
}
}
Наконец, будет ли использоваться метод 2, если вы хотите, например, выполнить расчет до получения или установки значения? например преобразование значения в процентах или выполнение проверки? например.
class Student
{
// Instance fields
private string name;
private double mark;
private int maxMark = 50;
// Method 1
public string Name { get; set; }
// Method 2
public double Mark
{
get { return mark; }
set { if ( mark <= maxMark ) mark = value / maxMark * 100; }
}
}
Да, метод 1 является ярлыком метода 2. Я предлагаю использовать метод 1 по умолчанию. Если вам нужна дополнительная функциональность, используйте метод 2. Вы также можете указать различные модификаторы доступа для get и set.
Да, Method2
- это путь, когда у вас есть пользовательские функции получения и установки. По умолчанию, когда вы используете Method1, будет внутреннее частное свойство по умолчанию. Пожалуйста, обратитесь к этому URL для более подробной информации.
Образец:
string _name;
public string Name
{
get => _name;
set => _name = value;
}