Использование новых членов Expression работоспособных фигурировать в C# 6.0, мы можем взять метод как это:Почему мы не можем использовать конструкторы с выраженным выражением?
public void Open()
{
Console.WriteLine("Opened");
}
... и изменить его к простому выражению с эквивалентной функциональностью:
public void Open() => Console.WriteLine("Opened");
Однако это не относится к конструкторам. Код, такие как это не компилируется:
private DbManager() => Console.WriteLine("ctor");
Нор делает это:
private DbManager() => {}
Есть ли причина, почему конструкторы не могут извлечь выгоду из особенности экспрессии работоспособных членов, и должен быть объявлен традиционным способом ?
Я могу только представить * догадка * здесь ... в основном они значительно, менее полезны для конструкторов, а главное Прецедент для выражения работоспособных членов, где они * return * something, тогда как в конструкторе вы ничего не возвращаете. Обратите внимание, что ваш последний пример более длинный, чем просто запись кода * без * '=>'. –
Были эксперименты вокруг конструкторов, которые были оставлены для C# 6.0. Есть еще несколько функций, планируемых для C# 7.0 с участием конструкторов, и на этот раз было принято решение ничего не менять на конструкторы. –