В C# 6.0 новый синтаксис позволяет нам писать автоматические свойства только для чтения с использованием инициализатора:
public bool AllowsDuplicates { get; } = true;
Точно так же мы можем написать это, используя геттер тела выражения:
public bool AllowsDuplicates => true;
Для простых типов эти два должны иметь одинаковый эффект: автоматическое свойство только для чтения, которое возвращает true.
Но является ли один из них предпочтительнее другого? Я подозреваю, что первый использует резервное поле:
private readonly bool _backingField = true;
public bool AllowsDuplicates {
get {
return _backingField;
}
}
В то время как последний превращается во что-то вроде:
public bool AllowsDuplicates {
get {
return true;
}
}
Так ли это, или компилятор умнее этого?
public const
было бы более подходящим для этого случая. В остальном очень похоже на этот недавний вопрос - person Henk Holterman   schedule 02.05.2016