我很喜歡自己在這裏的一個角落。在C#中繼承事件處理程序#
我有一系列的UserControl繼承自一個父級,它包含一些方法和事件來簡化事情,所以我不必寫行和幾乎相同的代碼行。像你一樣做。父級不包含其他控件。
我想要做的只是在父UserControl中有一個事件處理程序,它去做只有父控件才能做的事情(即有條件地調用一個事件,因爲事件在父級中定義) 。然後,我會將此事件處理程序連接到我的子控件中的所有輸入框,並且子控件將排除解析輸入並告知父控件是否拋出該事件的任務。不錯,乾淨,沒有重複,複製粘貼代碼(對我來說總是會導致錯誤)。
這是我的問題。 Visual Studio認爲我太聰明瞭一半,並警告說「方法'CheckReadiness'[父項中的事件處理程序]不能成爲事件的方法,因爲這個類派生出來的類已經定義了該方法。」是的,Visual Studio,這就是要點。我想想要有一個事件處理程序,它只處理子類拋出的事件,它的唯一工作就是使我能夠連接子程序而不必編寫一行代碼。我不需要那些額外的處理程序 - 我需要的所有功能自然就是在兒童處理用戶輸入時調用的。
我不知道爲什麼Visual Studio現在開始抱怨這件事(因爲它讓我這麼做),我不知道如何讓它消失。最好,我想這樣做,而不必定義一個只調用CheckReadiness的方法。是什麼引起了這個警告,是什麼導致它在不是一個小時之前就出現了,我怎樣才能讓它消失,而不是在所有的子類中做出小小的處理程序?
這將解決這個問題,但我希望避免基本上是空的錯誤處理程序,因此我的問題。 – Merus 2008-09-18 07:11:33