向 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/ReSharper 的工具有什么方法可以帮助我实现这一目标?
- 我是否应该编写一些脚本来解析我的文件并为我执行此操作? (那里有推荐的资源吗?)
- 或者我应该只是享受复制粘贴的乐趣:(?
提前致谢!
Visual Studio 搜索和替换支持 RegEx 搜索,您可以在替换中使用匹配项,所以这可能是可行的方法。
脚本可能是我能想到的最佳选择。
尽管这个问题本身给我带来了代码味。我发现可选参数本身很烦人,因为它们往往会导致充满 if else 的大型复杂方法。此外,使用可选参数意味着您可以保持向后兼容性,将它们添加到现有方法调用中。
我认为有一个更大的设计问题需要考虑,因为需要添加 50 多个带有可选参数的重载。
我对元编程尤其是 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/ReSharper 的工具有什么方法可以帮助我实现这一目标?
- 我是否应该编写一些脚本来解析我的文件并为我执行此操作? (那里有推荐的资源吗?)
- 或者我应该只是享受复制粘贴的乐趣:(?
提前致谢!
Visual Studio 搜索和替换支持 RegEx 搜索,您可以在替换中使用匹配项,所以这可能是可行的方法。
脚本可能是我能想到的最佳选择。
尽管这个问题本身给我带来了代码味。我发现可选参数本身很烦人,因为它们往往会导致充满 if else 的大型复杂方法。此外,使用可选参数意味着您可以保持向后兼容性,将它们添加到现有方法调用中。
我认为有一个更大的设计问题需要考虑,因为需要添加 50 多个带有可选参数的重载。