2012-04-03 14 views
10

Tôi có Class A mà thực hiện một số lượng lớn các trường hợp của Class B. Class B gói gọn một thể hiện của lớp C.đèo sự kiện từ lớp C qua lớp B vào lớp Một

Lớp tăng sự kiện mà cần phải được được xử lý bởi lớp A. Lớp A không cần biết về lớp C. Lớp C sẽ trả lại số liệu thống kê dựa trên hiệu suất mà A cần phải kết hợp lại.

Làm cách nào để tạo sự kiện trong Lớp B và kết nối chúng để lớp A có thể đăng ký sự kiện của lớp B và nhận sự kiện từ lớp C?

+0

xin lỗi? Lớp A * thực hiện một số lượng lớn các phiên bản của Lớp B *? điều đó chính xác có nghĩa là gì? Vui lòng cung cấp một số mã –

Trả lời

21

Sự kiện không có gì khác ngoài một cặp phương pháp bao gồm trường đại biểu. Bạn có thể ghi đè lên các cài đặt mặc định của tiện ích & loại bỏ phương pháp trong ClassB để vượt qua giá trị thẳng vào sự kiện trong ClassC:

public class ClassB 
{ 
    private ClassC m_C = new ClassC(); 

    public event EventHandler MyEvent 
    { 
     add { m_C.MyEvent += value; } 
     remove { m_C.MyEvent -= value; } 
    } 
} 
Các vấn đề liên quan