Overriding UWP事件覆盖base.onnavigatedto

Overriding UWP事件覆盖base.onnavigatedto,overriding,win-universal-app,Overriding,Win Universal App,我有一个简单的问题,每当我覆盖像 OnNavigatedTo()或OnApplytemplate(),有一行写为base.OnNavigatedTo()或base.something... 那行代码是做什么的?我通常会删除那条线,我应该保留它还是删除它?谢谢当您创建一个新页面时,默认情况下它从页面基类继承。该类还具有OnNavigatedTo的实现。调用base.OnNavigatedTo调用基类实现 通常,当从基类继承时,您希望通过添加到基类来扩展它的功能。因此,您需要运行原始实现,然后添加自

我有一个简单的问题,每当我覆盖像
OnNavigatedTo()
OnApplytemplate()
,有一行写为
base.OnNavigatedTo()
base.something...


那行代码是做什么的?我通常会删除那条线,我应该保留它还是删除它?谢谢

当您创建一个新页面时,默认情况下它从页面基类继承。该类还具有OnNavigatedTo的实现。调用base.OnNavigatedTo调用基类实现

通常,当从基类继承时,您希望通过添加到基类来扩展它的功能。因此,您需要运行原始实现,然后添加自己的代码

通过删除它,您基本上是在说:我想将行为更改为我指定的行为

一般来说,最好将其保存在那里,因为您可能不知道基类在那里做什么,并且它可能会破坏内容(或者如果基类仅将其作为要重写的集成点提供,则这是无关紧要的)

例如:


您可能希望每次有人导航到新页面时都进行日志记录。您可以先创建一个页面,我们可以将其称为LoggingPage,然后覆盖OnNavigatedTo以进行日志记录,而不是将代码放在每个页面中。然后,我们可以让所有其他页面从该页面继承并免费获得日志记录。但是,如果在其中一个页面上覆盖OnNavigatedTo并删除基类调用,该页面将不再进行日志记录,因为基类实现不再被调用。

我建议您不要删除该行,因为您不知道基类的虚拟方法实现了什么逻辑。已经有这么多了,他们解释得更好。谢谢你的帮助,回答得很好,非常清楚,非常感谢:)