处理重复参数声明的方法?

时间:2014-08-15 22:34:32

标签: c# methods parameters arguments language-features

是的,正如标题所说,是否有办法轻松处理重复参数?

例如,假设我正在制作一个有很多方法的课程。让我们说大多数方法采用相同的方法签名,而且它的长度相当长。举个例子:

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 */)

我确信与大多数其他情况一样,它不值得实施,或者说它不应该被实施的正​​当理由。 (或许我只是疯了,一般来说这是一个可怕的想法。)但复制/粘贴已经过时了。

感谢。

编辑:关于&#34;只是让它成为一个班级&#34;参数,supercat提出了一个有效的观点。在我的情况下,我创建了一个将方法链接在一起的类LINQ样式和每组参数可以是不同的。

1 个答案:

答案 0 :(得分:0)

您要求的是元编程功能,这些功能几乎不存在于C#中。

Lisp,C ++和许多函数式语言都能满足您的要求,但我不认为它会在C#中发生。

您可以使用T4文本模板生成代码,但之后您就可以自己动手了。