所以是的,正如标题所说,有没有一种方法可以轻松处理重复的参数?
例如,假设我正在创建一个包含许多方法的类。假设大多数方法都采用相同的方法签名并且它相当长。编造的例子:
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 */)
我确信与大多数其他情况一样,它要么不值得实现,要么有不应该实现的正当理由。 (或者也许我只是疯了,总的来说这是一个糟糕的主意。)但是复制/粘贴已经过时了。
谢谢。
编辑:关于“只是让它成为一个类”的论点,supercat 提出了一个有效的观点。在我的例子中,我正在制作一个将方法链接在一起的类,LINQ 样式并且每组参数可以不同。
最佳答案
您要求的是元编程功能,而 C# 几乎没有这些功能。
Lisp、C++ 和许多函数式语言可以满足您的要求,但我认为它不会很快在 C# 中实现。
您可以使用 T4 文本模板生成代码,但之后就只能靠自己了。
关于c# - 如何处理重复的参数声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25335160/