向 C# 文件中的所有方法添加重载方法的最佳方法

Best way to add overload methods to all methods in a C# file

我对元编程尤其是 C# 还很陌生,所以我正在寻找有关如何实现以下目标的好的指导。我们从这些方法开始:

public JObject x(int a)
public JObject y(int b)

现在,我需要为该文件中的所有方法添加一个可选参数,同时保持向后兼容性。所以为了满足最后一个要求,我需要为每个这样的方法创建新方法:

public JObject x(int a)
public JObject y(int b)
public JObject x(int a, int o = defaultValue)
public JObject y(int b, int o = defaultValue)

现在,问题是我有 50 多种这样的方法,我想尽可能避免复制粘贴。我对元编程没有太多经验,所以我的问题是:

提前致谢!

Visual Studio 搜索和替换支持 RegEx 搜索,您可以在替换中使用匹配项,所以这可能是可行的方法。

脚本可能是我能想到的最佳选择。

尽管这个问题本身给我带来了代码味。我发现可选参数本身很烦人,因为它们往往会导致充满 if else 的大型复杂方法。此外,使用可选参数意味着您可以保持向后兼容性,将它们添加到现有方法调用中。

我认为有一个更大的设计问题需要考虑,因为需要添加 50 多个带有可选参数的重载。