处理重复参数声明的方法

本文关键字:方法 声明 参数 处理 | 更新日期: 2023-09-27 18:18:17

所以,是的,正如标题所说,是否有一种方法可以轻松处理重复的参数?

例如,假设我正在创建一个包含许多方法的类。假设大多数方法都采用相同的方法签名而且签名很长。合成示例:

void Method(int x, int y, int z = 0, string label = null, isNeverGonnaGiveYouUp = true)

我知道你可以为一个类做一个别名…

using Alias = System.Console;

我没有发现任何类似的方法参数,也不知道我是否需要重复复制和粘贴所有内容(以及所有更改)。或者也许可以用宏或其他东西?虽然我不太懂宏观。

如果把它作为一种语言特性就好了。类似…

using ArgList = params (int x, int y, int z = 0, string label = null, isNeverGonnaGiveYouUp = true)
void Method(ArgList)

或者当有很长的泛型参数时…

using GenArgList = params (Action<int, int, int, string, bool>)

也许泛型方法…

using Gen = typeof (int, int, int string, bool)
void Method<Gen>(/* parameters here */)

我敢肯定,就像大多数其他情况一样,它要么不值得实现,要么有一个不应该实现的正当理由。(或者也许我只是疯了,这是一个糟糕的想法。)但是复制粘贴已经过时了。

谢谢。

编辑:关于"让它成为一个类"的论点,超级猫提出了一个有效的观点。在我的情况下,我正在制作一个类,将方法链在一起LINQ风格和每一组参数可以是不同的。

处理重复参数声明的方法

你要求的是元编程功能,这在c#中几乎是不存在的。

Lisp、c++和许多函数式语言都可以做到你所要求的,但我不认为c#会很快做到。

您可以使用T4文本模板来生成代码,但在此之后,您就可以自己完成了。