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

时间:2017-09-11 09:36:29

标签: c# visual-studio metaprogramming

我对元编程很陌生,特别是在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的工具可以帮助我实现这一目标吗?
  • 我应该编写一些解析我文件的脚本并为我做这个吗? (那里有任何推荐的资源吗?)
  • 或者我应该好好复制粘贴:(?

提前致谢!

2 个答案:

答案 0 :(得分:0)

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

虽然问题本身给我带来了代码味道。可选参数本身我觉得很烦人,因为它们倾向于导致大而复杂的方法,如果没有。同样使用可选参数意味着您可以保持向后兼容性,将它们添加到现有方法调用中。

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

答案 1 :(得分:-1)

Visual Studio搜索和替换支持RegEx搜索,您可以在替换中使用匹配,这可能是最佳选择。