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

时间:2015-04-09 04:58:44

标签: c# windows-phone-8.1

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

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

异常

  

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

2 个答案:

答案 0 :(得分:7)

“如果类试图覆盖在引用的元数据中定义的标记为 protected internal 的方法,也会出现错误CS0507。在这种情况下,重写方法应标记为保护 的“。

因此,只需从覆盖方法中删除“internal”关键字,并将其仅保留为“受保护”。

答案 1 :(得分:2)

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

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

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

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

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