【发布时间】:2021-10-18 06:51:50
【问题描述】:
我想向无法修改的外部静态类添加额外的 c# 方法。即为方便起见创建一个包装类,其中包含外部静态类的方法+我自己的静态方法。
我最初想从外部静态类继承我自己的类,但我发现静态类是密封的,不能以形式继承。
最好的方法是什么?
非常感谢您的帮助
【问题讨论】:
-
用你自己的封装外部静态类方法。
-
只是为了添加到包装器的“专业人士”中:如果外部库在静态 API 中有重大更改,您很可能只需要更改您的代码来适应。
-
感谢您的回答。这是唯一的方法吗?我的外部库有数百种方法,我宁愿不为每个方法创建包装器方法...
-
在这种情况下,不要。只需创建自己的静态类并在适当的地方使用两者。然而:(我的观点)一个带有“数百种方法”的静态类在我的书中是一种非常强烈的代码气味,无论如何......并引导我进入下一个问题:你是否在使用它们中的 all ?如果没有,您可以在合理范围内代理您实际需要的那些。
-
很确定您可以使用查找/替换来编写大部分代理。看看像 Sublime 这样可以放置多个光标的编辑器,在方法调用上双击例如
public,重复按 Ctrl D 直到所有public都被突出显示并有它们的光标,然后试着把你的头绕起来多个光标都服从您的模板输入 - 如果您按 SHIFT+END,它们将全部移至行尾,边走边选择。因此,使用该技术仅突出显示方法签名行。 ctrlc/v 进入。 .
标签: c# .net inheritance static