所以是的,正如 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 回答
您要求的是元编程功能,这些功能几乎不存在于C#中 .
Lisp,C和许多函数式语言可以做你所要求的,但我不认为它会在C#中发生 .
您可以使用T4文本模板生成代码,但之后您就可以自己动手了 .