我正在写一个WebPart,这意味着我继承System.Web.UI.WebControls.WebParts.WebPart
并且我重写了该方法protected override void CreateChildControls()
.
但是,sealed
如果可能的话,我想创建这个类,但这会产生两个问题:只是密封类会给出一个警告"在密封类中声明的新受保护成员".
将访问修饰符更改protected
为private
或internal
给出编译器错误,告诉我在继承时无法更改修饰符.
这让我感到疑惑:密封它并忽略警告是否有任何问题?或者这会导致任何进一步的负面影响吗?它似乎工作得很好,但魔鬼通常在细节.
编辑:我只是愚蠢."新受保护的成员"错误是针对一个确实未被覆盖的函数,并且只是意外声明为protected
.感谢Pragma-Tip!
子类可以看到受保护的成员,因此您稍微改变了类的接口; 如果你宣称它是'私有的',它只能在本地看到,所以它不会影响界面.
声明您的方法私有不受保护,警告应该消失.
你确定你正确地覆盖了吗?我个人无法重复这种行为.但如果它让你担心,你可以使用
#pragma warning disable 0628
// Offending code
#pragma warning restore 0628
Run Code Online (Sandbox Code Playgroud)