Я изучаю C#, и я узнаю о том, как сделать поля частными для класса и использовать 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; }
}
}
Посмотрите на [этот ответ] (http://stackoverflow.com/questions/15454470/why-arent-simple-properties-optimized-to-fields/15454538#15454538); он показывает что-то подробно. –
Возможный дубликат [Что такое автоматические свойства в C# и какова их цель?] (Http://stackoverflow.com/questions/6001917/what-are-automatic-properties-in-c-sharp-and-what-is -назначение) –