Я часто вижу это в документации С#. Но что он делает?
public class Car
{
   public Name { get; set; }
}
Я часто вижу это в документации С#. Но что он делает?
public class Car
{
   public Name { get; set; }
}
Это сокращение для:
private string _name;
public string Name
{
    get { return _name; }
    set { _name = value; }
}
Компилятор генерирует переменную-член. Это называется автоматическим свойством .
В простых терминах они называются аксессуарами свойств. Их реализация может быть объяснена ниже:
1.get {return name} Блок кода в get accessor выполняется, когда свойство Читать.
2.set {name = value} Кодовый блок в наборе аксессуаров выполняется, когда свойство Назначено новое значение.
Например. (Предполагая, что вы используете С#)
 class Person
 {
     private string name;  // the name field
     public string Name    // the Name property
     {
         get
         {
             return name;
         }
         set
         {
             name = value;
         }
     }
 }
Теперь, когда вы ссылаетесь на это свойство, как показано ниже
Лицо p = new Person();//Создание экземпляра класса или создание объекта 'p' класса 'Person'
System.Console.Write(p.Name); //The get accessor is invoked here
Аксессуар get вызывается в Читать значение свойства i.e компилятор пытается прочитать значение string 'name'.
2. Когда вы Назначьте значение (используя аргумент) для свойства "Имя", как показано ниже
Person p = new Person();
p.Name = "Stack"  // the set accessor is invoked here
Console.Writeline(p.Name) //invokes the get accessor
Console.ReadKey(); //Holds the output until a key is pressed
Аксессуар набора Назначает значение "Stack" для свойства "Name" i.e "Stack" хранится в строке "name".
Ouput:
Stack
Это свойство автоматического чтения-записи. Это дополнение С# 3.0. Что-то вроде:
public class Car {
    private string name;
    public string Name { get { return name; } set { name = value; } }
}
за исключением того, что вы не можете напрямую обращаться к полю резервного копирования.
Он называется Автореализованным свойством и новый для С# 3.0. Это более чистый синтаксис, когда ваш доступ к свойству не требует какого-либо специального поведения или проверки. Он аналогичен функции:
public class Car
{
  private string _name;
  public string Name
  {
    get { return _name; }
    set {_name = value; }
  }
}
Таким образом, он сохраняет достаточный объем кода, но позже вы сможете изменить логику доступа, если поведение или правила должны измениться.
Это равнозначно:
private string _Text;
public string Text 
{
    get { return _Text; }
    set { _Text = value; }
}
За исключением того, что у вас нет доступа к частной переменной внутри класса.
РЕЗЮМЕ: в С# 3.0 и более поздних версиях автоматически реализованные свойства объявление свойства более кратким, когда дополнительная логика не требуется в доступа к ресурсам.