警告CS0114:`AnApp.AppDelegate.Self'隐藏继承的成员

时间:2015-01-13 11:35:18

标签: c# ios xamarin.ios xamarin xamarin-studio

今天我更新了Xamarin.iOS 8.6.0.51。现在我收到以下警告:

  

警告CS0114:AnApp.AppDelegate.Self' hides inherited member MonoTouch.Foundation.NSObject.Self'。成为当前成员   覆盖该实现,添加override关键字。否则加   新关键字(CS0114)

在我的AppDelegate.cs中,我定义了以下属性/字段:

public static AppDelegate Self { get; private set; }

比我以这种方式设置它以获得对app delegate的引用(如this thread中提议的那样):

AppDelegate.Self = this;

这在更新之前有效。我使用它来从故事板和其他一些东西(网络活动指示器......)实例化一些视图控制器。为了让这个工作,我需要改变什么?我不再需要这个了,还是应该重命名 Self

1 个答案:

答案 0 :(得分:1)

这意味着AppDelegate的基类也有名为Self的成员,编译器警告您,您可能在不知不觉中隐藏了基类成员。

如果您知道自己在做什么,那么可以使用new关键字安全地取消警告。

public static new AppDelegate Self { get; private set; }

这绝对没有任何区别,如果没有new关键字,您的应用也将起作用。它告诉c#编译器,我故意为成员使用相同的名称,并且我对隐藏基类成员感兴趣。

相关问题