Sử dụng thành viên Biểu-Bodied tính năng mới trong C# 6.0, chúng ta có thể lấy một phương pháp như thế này:Tại sao chúng ta không thể sử dụng các nhà xây dựng biểu hiện?
public void Open()
{
Console.WriteLine("Opened");
}
... và thay đổi nó thành một biểu thức đơn giản với chức năng tương đương:
public void Open() => Console.WriteLine("Opened");
Tuy nhiên, điều này không đúng đối với các nhà xây dựng. Mã như thế này không biên dịch:
private DbManager() => Console.WriteLine("ctor");
Cũng không phải thực hiện điều này:
private DbManager() => {}
Có bất kỳ lý do tại sao nhà xây dựng không thể được hưởng lợi từ các thành viên biểu hiện thân đặc trưng, và phải được khai báo theo cách truyền thống ?
tôi chỉ có thể cung cấp một * Đoán * đây ... về cơ bản họ đáng kể ít hữu ích cho nhà thầu, và các trường hợp sử dụng chính cho các thành viên biểu hiện thân là nơi họ * trả lại * một cái gì đó, trong khi trong một nhà xây dựng bạn không trả lại bất cứ điều gì. Lưu ý rằng ví dụ cuối cùng của bạn dài hơn là chỉ viết mã * mà không có * '=>'. –
Có một số thí nghiệm xung quanh các nhà thầu đã bị bỏ rơi cho C# 6.0. Có một số tính năng khác được lập kế hoạch cho C# 7.0 liên quan đến các nhà xây dựng và đã có quyết định không thay đổi bất cứ điều gì liên quan đến các nhà thầu lần này. –