首页 文章

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

提问于
浏览 523
2

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

例如,假设我正在使用许多方法创建一个类 . 假设大多数方法都采用相同的方法签名,而且时间相当长 . 做例子:

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

我知道你可以为一个 class 做一个别名......

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

我敢肯定,与大多数其他情况一样,它要么不值得实施,要么就是为什么不应该实施它的正当理由 . (或许我只是疯了,一般来说这是一个糟糕的想法 . )但复制/粘贴已经过时了 .

谢谢 .

编辑:关于“只是让它成为一个类”的论点,supercat提出了一个有效的观点 . 在我的例子中,我正在创建一个将LINQ风格链接在一起的类,每组参数都可以不同 .

1 回答

  • 0

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

    Lisp,C和许多函数式语言可以做你所要求的,但我不认为它会在C#中发生 .

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

相关问题