Action<T>
là chữ ký, mà chỉ có nghĩa là phương pháp thể hiện bằng hành động phải lấy một tham số. Loại tham số là gì, tùy thuộc vào chữ ký của cuộc gọi Invoke
.
Một số ví dụ mã như thế nào để đại diện cho chữ ký khác nhau của Action
:
var noArgs =() => button1.Text = "hello world"; // Action
var oneArg = (arg) => button1.Text = "hello world"; // Action<T>
var twoArgs = (arg1, arg2) => button1.Text = "hello world"; // Action<T,T>
Nếu bạn không cần phải sử dụng các thông số để phương pháp, đó là tốt. Nhưng bạn vẫn cần khai báo chúng trong biểu thức lambda.
Bây giờ, điều này không trả lời làm thế nào để làm điều đó từ .NET 2.0, nhưng tôi giả định (có lẽ sai, sửa tôi nếu tôi sai) mà bạn không biết làm thế nào lambdas tương ứng với loại hành động.
Nguồn
2011-06-19 04:11:23
cái này hoạt động .. nhưng câu trả lời của aligray, tại sao nó lại bị lỗi đó .. Không thể chuyển đổi phương thức nặc danh thành 'System.Delegate' vì nó không phải là kiểu đại biểu .. tôi nghĩ, nó vẫn là tương tự.. –