Thứ hai vẫn đòi hỏi cú pháp lambda:
Func<string> g =() => { return "Hello, world!"; };
Trong lần đầu tiên, bạn đang có hiệu quả bằng văn bản:
Func<string, string> f = (x) => { return "Hello, world!"; };
Nhưng C# sẽ cho phép bạn rời khỏi ()
khi xác định một lambda nếu chỉ có một đối số duy nhất, cho phép bạn viết x =>
thay thế. Khi không có đối số, bạn phải bao gồm ()
.
này được quy định tại phần 7,15 của C# đặc tả ngôn ngữ:
Trong một chức năng ẩn danh với một tham số duy nhất, ngầm đánh máy, các dấu ngoặc đơn có thể được bỏ qua trong danh sách tham số. Nói cách khác, một chức năng ẩn danh của mẫu
(param) => expr
có thể được viết tắt là
param => expr
Nguồn
2013-05-16 20:08:13
'Func '(đó là những gì ví dụ thứ hai của mình đang sử dụng) một hàm mang theo không có tham số và trả về một chuỗi là. –
Servy
Anh ấy đang sử dụng: http://msdn.microsoft.com/en-us/library/bb534960.aspx –