覆盖'protected'继承的成员时,无法更改访问修饰符'Wp8.1 WinRt中的Windows.UI.Xaml.FrameworkElement.OnApplyTemplate()错误

Dev*_*sad 2 c# windows-phone-8.1

本代码在WP8.0中工作,但在WP8.1 Universal Apps中我收到了错误.

 public override void OnApplyTemplate()
 {
      base.OnApplyTemplate();
      //Some Statements
 }
Run Code Online (Sandbox Code Playgroud)

例外

覆盖'protected'继承的成员'Windows.UI.Xaml.FrameworkElement.OnApplyTemplate()时无法更改访问修饰符

小智 7

"如果类试图覆盖标记为在引用的元数据中定义的受保护内部的方法,也会发生错误CS0507 .在这种情况下,重写方法应标记为受保护."

因此,只需从重写方法中删除"internal"关键字,并将其保持为"受保护".


Kev*_*sse 3

重写方法时无法更改可见性修饰符。与基类中的OnApplyTemplate定义相同,因此您需要以相同的方式声明它:protected

 protected override void OnApplyTemplate()
 {
      base.OnApplyTemplate();
      //Some Statements
 }
Run Code Online (Sandbox Code Playgroud)

在不太可能的情况下,您需要从类外部访问此方法,您可以通过声明另一个公共方法来调用它:

 public void ApplyTemplate()
 {
     this.OnApplyTemplate();
 }

 protected override void OnApplyTemplate()
 {
      base.OnApplyTemplate();
      //Some Statements
 }
Run Code Online (Sandbox Code Playgroud)