c# - 如何禁止在 C# 中重写类方法/属性?

标签 c# .net overriding sealed

我相信我希望某个类的某些方法和属性不可重写,并在所有派生类中使用基类的实现。如何做到这一点? sealed 关键字似乎不起作用,并说“方法不能被密封,因为它不是覆盖”。

最佳答案

成员在 C# 中默认是密封的 - 除非它们被标记为虚拟,否则它们无论如何都不能在派生类中被覆盖。

诚然,它们可以隐藏在派生类中:

public new void SomeMethod()
{
}

...但这与覆盖不同。您无法阻止这种情况,但如果调用者使用基类的编译时类型,他们无论如何都不会意外调用它。

如果您可以确切地向我们提供您试图阻止的内容的更多详细信息(从调用者的 POV 和被调用的代码),我们可能会提供更多帮助。

关于c# - 如何禁止在 C# 中重写类方法/属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6585832/

相关文章:

c# - 如何使用 Magick.NET 将动画 webp 图像转换为动画 gif?

c# - 将匿名类型设置为 null

c# - StringComparison.InvariantCultureIgnoreCase 去哪儿了?

C# 搜索特定文件夹以外的文件和文件夹

android - 像主页按钮一样覆盖电源按钮

objective-c - objective-c 中的(覆盖)是什么

c# - 我们可以使用应用程序域执行批处理文件 (*.bat) 吗?

c# - 在C#项目中动态创建文件夹

c# - iTextSharp HTMLWorker.ParseToList() 抛出 NullReferenceException

Laravel Eloquent 如何覆盖基本查询?