Chúng ta hãy nói một chút rằng C# cho phép nhiều giá trị lợi nhuận theo nghĩa tinh khiết nhất, nơi mà chúng tôi mong chờ để xem cái gì đó như:C# - Đường cú pháp cho các tham số ngoài?
string sender = message.GetSender();
string receiver = message.GetReceiver();
đầm để:
string sender, receiver = message.GetParticipants();
Trong trường hợp đó, Tôi không phải hiểu các giá trị trả về của phương thức cho đến khi tôi thực sự thực hiện cuộc gọi phương thức. Có lẽ tôi dựa vào Intellisense để cho tôi biết giá trị trả lại (s) tôi đang xử lý, hoặc có lẽ tôi đang tìm kiếm một phương thức trả về những gì tôi muốn từ một lớp tôi không quen thuộc.
Tương tự như vậy, chúng tôi có một cái gì đó như thế này, hiện nay, trong C#:
string receiver;
string sender = message.GetParticipants(out receiver);
nơi lập luận để GetParticipants là một tham số ra chuỗi. Tuy nhiên, đây là một chút khác biệt so với ở trên bởi vì nó có nghĩa là tôi phải preempt với, hoặc ít nhất là quay trở lại và viết, mã mà tạo ra một biến để giữ kết quả của tham số out. Đây là một chút phản trực giác.
Câu hỏi của tôi là, có bất kỳ đường cú pháp nào trong C# hiện tại, cho phép nhà phát triển đưa ra tuyên bố này trong cùng một đường với lời gọi phương thức không? Tôi nghĩ rằng nó sẽ làm cho phát triển một (nhỏ) chút chất lỏng hơn, và cũng làm cho mã dễ đọc hơn nếu tôi đã làm một cái gì đó như:
để cho thấy rằng người nhận đã được khai báo và giao ngay tại chỗ.
Ví dụ C# hiện tại của bạn cũng nên thêm công cụ sửa đổi "ra" vào đối số *: string sender = message.GetParticipants (out receiver); –
chỉnh sửa GetParicipants, tôi không có quyền làm điều đó –
Điều này đã được [đề xuất như một tính năng có thể cho C# 6.0] (http://damieng.com/blog/2013/12/09/probable-c-6- 0 tính năng minh họa). –