Я видел что-то вроде следующего где-то, и задавался вопросом, что это значит. Я знаю, что они - получатели и сеттеры, но хотят знать, почему строка Type определяется так. Спасибо, что помогли мне.
public string Type { get; set; }
Я видел что-то вроде следующего где-то, и задавался вопросом, что это значит. Я знаю, что они - получатели и сеттеры, но хотят знать, почему строка Type определяется так. Спасибо, что помогли мне.
public string Type { get; set; }
Это Автореализованные свойства (для краткости Auto Properties).
Компилятор будет автоматически генерировать эквивалент следующей простой реализации:
private string _type;
public string Type
{
get { return _type; }
set { _type = value; }
}
Это авто-свойство, и это сокращенная запись для этого:
private string type;
public string Type
{
get { return this.type; }
set { this.type = value; }
}
public string Type { get; set; }
Иначе не работает
private string _Type;
public string Type
{
get { return _Type; }
set { _Type = value; }
}
Это означает, что компилятор определяет поле поддержки во время выполнения. Это синтаксис для автоматически реализованных свойств.
Дополнительная информация: Автореализованные свойства
В С# 6:
Теперь можно объявить авто-свойства как поле:
public string FirstName { get; set; } = "Ropert";
Авто-свойства только для чтения
public string FirstName { get;} = "Ropert";
Свойство автоматически поддерживаемого, в основном эквивалентное
private string type;
public string Type
{
get{ return type; }
set{ type = value; }
}
Они называются автоматическими свойствами.
http://msdn.microsoft.com/en-us/library/bb384054.aspx
Функционально (и в терминах скомпилированного IL), они являются такими же, как свойства с полями поддержки.
Я знаю, что это старый вопрос, но с выпуском С# 6 теперь вы можете сделать что-то подобное для частных свойств.
public constructor()
{
myProp = "some value";
}
public string myProp { get; }