[英]purpose of using base method in derived class
我正在查看某人的代碼,並具有:
protected override void OnMouseEnter(MouseEventArgs e)
{
base.OnMouseEnter(e); //necessary?
if (...)
}
現在,問題是為什么要調用基類方法? 無論如何,此代碼將無法工作。 任何想法?
謝謝。 阿米特
當您想利用基礎實現的功能但又想擴展派生類實現中發生的事情時,可以使用基礎調用。
這可以做一些非常有用的事情,例如設置基類中定義的屬性或處理事件,而不必在每個派生類中放置樣板代碼。
由於基類方法具有默認行為,您可能仍要利用它。
根據基類,可能還必須執行其方法以使其按預期運行。 調用基本代碼非常慣例,因為它可能很重要,特別是如果您不知道它的作用的話。
這在很大程度上取決於您要處理的事件處理程序。 如果您的基類很復雜,並且它在OnMouseEnter()
中做了很多您想保留的事情,那么您應該調用base.OnMouseEnter(e)
。 如果您想完全“覆蓋”該函數,則意味着您知道base.OnMouseEnter(e)
不想使用它,則不要調用base.OnMouseEnter(e)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.