c# - 密封类中的 protected 成员

标签 c# .net

我正在编写一个 WebPart,这意味着我继承自 System.Web.UI.WebControls.WebParts.WebPart 并且我覆盖了方法 protected override void CreateChildControls().

但是,如果可能的话,我想让类密封,但这会带来两个问题:密封类会发出警告“新的 protected 成员在密封类中声明”。

将访问修饰符从 protected 更改为 privateinternal 会出现编译器错误,告诉我继承时无法更改修饰符。

这让我想知道:密封它并忽略警告有什么问题吗?或者这会在未来导致任何负面影响吗?它似乎工作得很好,但问题往往出在细节上。

编辑:我只是在装傻。 “新 protected 成员”错误是针对确实未被覆盖的函数,只是意外地被声明为 protected。不过还是感谢 Pragma-Tip!

最佳答案

protected 成员可以被子类看到,所以你稍微改变了类的接口(interface);如果您将其声明为“私有(private)”,则它只会在本地可见,因此不会影响界面。

声明您的方法私有(private)不 protected ,警告应该消失。

关于c# - 密封类中的 protected 成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/495004/

相关文章:

.net - .NET的语法突出显示组件

.net - 如何写入自定义 Windows 事件日志?

c# - 短时间更改按钮颜色

c# - 使用通用处理程序从服务器下载文件

C# 标志解析

.net - IronPython 中的深层复制

c# - 使用 C# 和 APM 时 CPU 使用率不会达到 100% 的原因是什么?

c# - 如何在 C# 的 getter 和 setter 方法中进行验证?

c# - Lambda 到表达式树的转换

c# - 为什么可以在类中编写 dispose() 方法时使用 IDisposable