Tôi có một lớp cơ sở có chứa các sự kiện sau đây:C#: Nâng cao một sự kiện di truyền
public event EventHandler Loading;
public event EventHandler Finished;
Trong một lớp kế thừa từ lớp cơ sở này, tôi cố gắng để nâng cao sự kiện:
this.Loading(this, new EventHandler()); // All we care about is which object is loading.
Tôi nhận được lỗi sau:
Sự kiện 'BaseClass.Loading' chỉ có thể xuất hiện ở phía bên tay trái của + = hoặc - = (BaseClass ')
Tôi giả định rằng tôi không thể truy cập các sự kiện này giống như các thành viên khác được kế thừa?
Những phương pháp này cần được bảo vệ ảo trừ khi có một lý do nào làm khác đi. –
Tại sao nó phải là ảo? Tôi sẽ tuyên bố nó là ảo nếu tôi muốn thừa kế thay đổi cách thức sự kiện nên được nâng lên, nhưng hầu hết thời gian, tôi thấy không có lý do để làm điều này ... –
Theo hướng dẫn Microsoft nói nó phải là ảo để người thừa kế có thể kiểm soát sự kiện .. thêm vào phương pháp được bảo vệ trên nên lấy sự kiện args, không tự tạo chúng. Câu trả lời này sai so với câu trả lời chính xác của Adam Robinson. – meandmycode