2009-02-27 28 views
25

tôi thấy dòng này trong nhiều ví dụ trực tuyến của việc sử dụng các đại biểu Hành động:đại biểu hành động với zero thông số

public event Action MyEvent; 

Nhưng khi tôi thử nó trong mã của riêng tôi, tôi nhận được lỗi này

Sử dụng loại chung 'System.Action' yêu cầu '1' loại đối số

Tài liệu chắc chắn mô tả biểu mẫu Hành động mà không có bất kỳ tham số kiểu nào. Tôi đang thiếu gì?

+4

Không phải là câu trả lời cho câu hỏi, nhưng bạn không nên sử dụng Hành động cho sự kiện. Sử dụng EventHandler hoặc EventHandler làm đại biểu cho các sự kiện. –

+2

@GregBeech, cảm ơn mẹo, nhưng lý do không sử dụng Hành động ở đây là gì? –

+0

@ I.J.Kennedy Câu trả lời này khá tuyệt vời http://stackoverflow.com/a/803320/1608072 – caiosm1005

Trả lời

22

Đảm bảo ứng dụng của bạn đang tham chiếu System.Core.

Chỉnh sửa - cũng đảm bảo bạn đang nhắm mục tiêu .NET 3.5 dưới dạng System.Core.dll là một phần của phiên bản đó.

+0

Và là .NET 3.5 ... –

+0

Cảm ơn! Tôi không có tham chiếu System.Core. Ngay cả khi biết câu trả lời, tôi vẫn không thể tìm thấy câu trả lời trong tài liệu. –

36

Mở rộng câu trả lời của Andrews.

Hoàn toàn hợp pháp để sử dụng Tác vụ trong trường hợp không phải là 3.5. Đơn giản chỉ cần xác định nó.

public delegate void Action(); 
+0

Trừ khi bạn đang chuyển nó đến thư viện elses ai đó, đang sử dụng Action.Core's Action ... –

+3

@Simon, trong trường hợp đó bạn đã phải sử dụng 3.5 (trực tiếp hoặc gián tiếp) để nó không phải là một vấn đề. – JaredPar

Các vấn đề liên quan