正在隐藏内部虚拟方法
本文关键字:虚拟 方法 内部 隐藏 | 更新日期: 2023-09-27 18:00:28
我有这样的东西;
internal virtual Draw() { ... }
在已编译的程序集中。我有从这个类派生的类。显然,在特定程序集之外,我无法覆盖这个方法,甚至无法调用它
有可能隐藏这个方法吗,因为它在我自己的程序集中甚至都不"可见"?
难道我根本没有办法改变这种行为,阻止这个方法被调用或重新路由它吗?
如果我正确地取消了调用,那么像这样使用EditorBrowsable
属性将导致方法不会显示在intellisense
:中
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
protected internal virtual Draw() { ... }
但是,如果soem实体知道它在同一个程序集中,则不能阻止从该程序集调用它。(你可以对intellisense隐藏它,人们通常认为它不存在)
首先,我假设您的方法是protected internal
,而不是public internal
,这不是有效的方法签名。
关于隐藏方法,如果您可以访问已编译库的源代码,则可以将其重构为仅在程序集中的protected
,这样只有派生类型才能覆盖它
但是,"隐藏"它是没有意义的,因为议会之外的任何人(正如你所说,议会本身是第三方)都不能称之为或推翻它,所以这样做毫无意义。