Какова доступность полей поддержки автоматически реализуемых свойств? - PullRequest
0 голосов
/ 30 октября 2018

Поля поддержки автоматически закрыты - я прав?

class Car
{
    public String Mark { get; set; }
    public String Model { get; set; }
}

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Автоматически реализованные свойства:

public String Mark { get; set; }
public String Model { get; set; }

Когда вы объявляете автоматически внедренный, как показано в вашем примере, компилятор создает частное анонимное поле поддержки, к которому можно получить доступ только через свойства get и set свойства.

private string mark;
private string model;
public String Mark { 
   get
   {
   return mark;
   }
   set
   {
   mark = value;
   }
}
public String Model{ 
   get
   {
   return model;
   }
   set
   {
   model = value;
   }
}
0 голосов
/ 30 октября 2018

В

class Car
{
    public string Mark { get; set; }
    string Model { get; set; }
}
  • Класс Car внутренний.
  • Недвижимость Mark является общедоступной.
  • Свойство Model является частным.

В комментариях указывается, что вы спрашиваете о доступности полей поддержки.

Оба свойства Автоматически реализуемые свойства (Руководство по программированию в C #) со скрытым, недоступным вспомогательным полем. Документация для автоматически реализуемых свойств C # гласит:

Когда вы объявляете свойство [...], компилятор создает приватное анонимное вспомогательное поле, к которому можно получить доступ только через методы доступа get и set свойства.

Это отличается в VB, где поле поддержки доступно из класса: Автоматически реализуемые свойства (Visual Basic) .

Также см .: Каковы модификаторы доступа по умолчанию в C #?

...