Tôi đã tự bảo vệ mình thành một góc ở đây.Thừa kế các trình xử lý sự kiện trong C#
Tôi có một loạt các UserControl kế thừa từ một phụ huynh, trong đó có một vài phương pháp và sự kiện để đơn giản hóa mọi thứ vì vậy tôi không phải viết dòng và dòng mã gần giống. Như cách bạn làm. Phụ huynh không chứa các điều khiển khác. Những gì tôi muốn làm là chỉ có một trình xử lý sự kiện, trong UserControl cha mẹ, mà đi và làm những thứ mà chỉ kiểm soát cha mẹ mới có thể thực hiện (có nghĩa là, điều kiện gọi một sự kiện, như sự kiện được xác định trong phụ huynh). . Sau đó, tôi sẽ kết nối trình xử lý sự kiện này cho tất cả các hộp nhập của tôi trong các điều khiển con của tôi và các điều khiển con sẽ phân loại nhiệm vụ phân tích đầu vào và báo cho cha mẹ kiểm soát xem có nên ném sự kiện đó hay không. Đẹp và sạch sẽ, không lặp lại, mã sao chép-dán (mà cho tôi luôn luôn kết quả trong một lỗi).
Đây là câu hỏi của tôi. Visual Studio nghĩ rằng tôi quá thông minh một nửa, và cảnh báo tôi rằng "phương pháp 'CheckReadiness' [xử lý sự kiện trong phụ huynh] không thể là phương thức cho một sự kiện vì lớp này xuất phát từ đã định nghĩa phương thức." Có, Visual Studio, là điểm. Tôi muốn để có trình xử lý sự kiện chỉ xử lý các sự kiện được các lớp con ném và công việc duy nhất của nó là cho phép tôi kết nối các trẻ em mà không cần phải viết một dòng mã. Tôi không cần những trình xử lý bổ sung đó - tất cả các chức năng tôi cần được gọi tự nhiên khi trẻ em xử lý đầu vào của người dùng.
Tôi không chắc lý do tại sao Visual Studio đã bắt đầu phàn nàn về điều này ngay bây giờ (vì nó cho phép tôi làm điều đó trước), và tôi không chắc chắn làm thế nào để làm cho nó biến mất. Tốt hơn, tôi muốn làm điều đó mà không cần phải xác định một phương pháp mà chỉ cần gọi CheckReadiness. Điều gì gây ra cảnh báo này, điều gì khiến nó xuất hiện ngay bây giờ khi nó không cách đây một giờ, và làm thế nào tôi có thể làm cho nó biến mất mà không cần phải xử lý ít trong tất cả các lớp con?
Điều đó sẽ giải quyết được vấn đề, nhưng tôi đã hy vọng tránh được các trình xử lý lỗi cơ bản trống rỗng, do đó câu hỏi của tôi. – Merus
Tôi không nghĩ rằng họ đang thừa, mặc dù bạn đang giữ các điều khiển và xử lý sự kiện về cơ bản cùng nằm ở cùng một vị trí.Điều này có thể (tùy thuộc vào cách bố trí mã) dẫn đến khả năng đọc tốt hơn của mã vv Chỉ của nó mà tất cả các công việc được thực hiện ở nơi khác! –
Có vẻ như điều phải làm ... có vẻ như đó chỉ là vấn đề thiết kế ... –