覆盖受保护的虚拟而不继承

本文关键字:继承 虚拟 受保护 覆盖 | 更新日期: 2023-09-27 18:36:35

我的应用程序中有一堆DataGrids。我需要为所有这些覆盖一些受保护的虚拟方法。有什么比使用名称不太熟悉的 DataGrid 类派生更好的方法吗?我希望像附加属性这样的解决方案能够使用自定义属性指定过度行为。

覆盖受保护的虚拟而不继承

你必须覆盖。重写您自己的 MyOwnDataGrid(或较短的名称)中的方法。然后在使用数据网格的任何地方使用该类。如果你有数百个网格,你必须有一个奇怪的应用程序设计。如果您不想更改创建new DataGrid()的每个位置,我相信您可以更改 using 指令。

using DatGrid = My.NameSpace.MyOwnDataGrid;

您仍然必须使用datagrids为每个文件执行此操作,并且它使代码阅读起来有点混乱,因此我认为最好将"new DataGrid("全局搜索/替换为"new MyOwnDataGrid("),然后您就完成了。

在 C# 中,如果不从该方法继承,则无法重写该方法。MSDN-Override。重写方法的唯一方法是从该基类继承。有什么理由不想从基类继承吗?