我收到一个奇怪的警告,我不明白。
我有两个UserControls
。第一个BaseControl
继承自Button
,第二个SecondControl
继承自BaseControl
。我没有改变任何东西,所以两个 UserControls 就像 VS2012 创建它们(默认构造函数等)我只删除了sealed
关键字 ofBaseControl
为了继承它。
现在,如果我构建项目,则会发出以下警告:
'MyProject.Controls.SecondControl.Connect(int, object)' hides inherited member
'MyProject.Controls.BaseControl.Connect(int, object).' Use the new keyword if hiding was intended.
当我点击这个警告时,VS2012 会打开一个名为的文件'SecondControl.g.cs'
并显示:
partial class SecondControl: global::MyProject.Controls.BaseControl, global::Windows.UI.Xaml.Markup.IComponentConnector
{
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Windows.UI.Xaml.Build.Tasks"," 4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public void Connect(int connectionId, object target)
{
this._contentLoaded = true;
}
}
这是什么意思?Connect()
除了这个,我没有调用任何方法,SecondControl.g.cs
但这不是我的方法。任何提示如何解决这个问题?即使它只是一个警告并且我的应用程序运行良好,我也不希望在输出窗口中有任何警告/错误:)
我在 SO 上找到了一些关于此错误的文章,但这些文章都没有帮助我:(
编辑:添加上面提到的整个类。
基本控制:
namespace MyProject.Controls
{
public partial class BaseControl : Button
{
public BaseControl()
{
this.InitializeComponent();
}
}
}
第二控制:
namespace MyProject.Controls
{
public sealed partial class SecondControl: BaseControl
{
public SecondControl()
{
this.InitializeComponent();
}
}
}
我检查了 Windows.UI.Xaml.Controls.Button 的整个继承链,没有 Connect(int, object) 或任何其他 Connect()。我也没有添加任何 Connect() 方法。