在 Wp8.1 WinRt 中覆盖"受保护"继承成员"Windows.UI.Xaml.FrameworkElement.OnApplyTemplate() 错误时无法更改访问修饰符



此代码在WP8.0中工作,但在WP8.1通用应用程序中我收到了错误。

 public override void OnApplyTemplate()
 {
      base.OnApplyTemplate();
      //Some Statements
 }

异常

重写"protected"继承成员"Windows.UI.Xaml.FrameworkElement.OnApplyTemplate()时无法更改访问修饰符

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

  • 来源:https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs0507

因此,只需从重写方法中删除"internal"关键字,并仅将其保留为"protected"即可。

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

 protected override void OnApplyTemplate()
 {
      base.OnApplyTemplate();
      //Some Statements
 }

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

 public void ApplyTemplate()
 {
     this.OnApplyTemplate();
 }
 protected override void OnApplyTemplate()
 {
      base.OnApplyTemplate();
      //Some Statements
 }

相关内容

最新更新