c #: получатель / установщик - PullRequest
88 голосов
/ 15 июля 2011

Я где-то видел что-то вроде следующего, и мне было интересно, что это значит. Я знаю, что они являются геттерами и сеттерами, но я хочу знать, почему строка Type определяется следующим образом. Спасибо за помощь.

public string Type { get; set; }

Ответы [ 8 ]

148 голосов
/ 15 июля 2011

Это Автоматически реализуемые свойства (для краткости автоматические свойства).

Компилятор автоматически сгенерирует эквивалент следующей простой реализации:

private string _type;

public string Type
{
    get { return _type; }
    set { _type = value; }
}
29 голосов
/ 15 июля 2011

Это авто-свойство , и это сокращенная запись для этого:

private string type;
public string Type
{
  get { return this.type; }
  set { this.type = value; }
}
22 голосов
/ 19 июля 2016

В C # 6:

Теперь можно объявить авто-свойства просто как поле:

public string FirstName { get; set; } = "Ropert";

Авто-свойства только для чтения

public string FirstName { get;} = "Ropert";
13 голосов
/ 15 июля 2011
public string Type { get; set; } 

ничем не отличается от того, что делает

private string _Type;

public string Type
{    
get { return _Type; }
set { _Type = value; }
}
8 голосов
/ 15 июля 2011

Это означает, что компилятор определяет вспомогательное поле во время выполнения.Это синтаксис для автоматически реализуемых свойств.

Дополнительная информация: Автоматически реализованные свойства

5 голосов
/ 15 июля 2011

Это автоматически поддерживаемое свойство, в основном эквивалентное

private string type;
public string Type
{
   get{ return type; }
   set{ type = value; }
}
4 голосов
/ 15 июля 2011

Это так называемые авто свойства.

http://msdn.microsoft.com/en-us/library/bb384054.aspx

Функционально (и с точки зрения скомпилированного IL) они такие же, как свойства с полями поддержки.

1 голос
/ 02 октября 2015

Я знаю, что это старый вопрос, но с выпуском C # 6 теперь вы можете сделать что-то подобное для частных свойств.

public constructor()
{
   myProp = "some value";
}

public string myProp { get; }
...