簡體   English   中英

在派生類中使用基本方法的目的

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM