C# 方法重载与参数关键字
我有一种方法:下面的相关部分
void foo(various parameters)
{
tsk.run(various parameters);
}
现在 tsk.run 的参数需要这样间隔:
tsk.run(param 1 + " " param2 + " " param3);, etc depending on how many parameters.
参数将形成一个在命令行应用程序中使用的连续字符串。
最多有4个参数,所以最好为每个参数都做一个重载方法。或者有没有办法使用 Param 关键字获取参数并将它们添加到 tsk.run() 方法中。
是否值得使用 param[] 然后循环,连接成一个字符串,然后将其放入运行中?
I have a method: relevant part below
void foo(various parameters)
{
tsk.run(various parameters);
}
Now the parameters with the tsk.run need to spaced as such:
tsk.run(param 1 + " " param2 + " " param3);, etc depending on how many parameters.
The parameters will form one continuous string that is used in a command line app.
At most, there will be 4 parameters, so is it best to do an overload method for each. Or is there a way using the Param keyword to take the parameters and add them to the tsk.run() method.
Would it be worth using param[] and then looping through, concatenating into a string and then put that into run?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你不需要循环:
You needn't loop:
如果您知道参数的数量,请使用重载,因为它会更有效。
编译器将能够直接调用正确的方法,并且您可以分配默认值。
如果参数列表是动态创建的并且长度可以变化更多,请使用 params.
或者在您的示例中跳过参数并仅使用字符串列表或字符串数组。
If you know the number of arguments use overload as it will be more efficient.
The compiler will be able to directly call the right method and you can assign default values.
If the paramlist is created dynamically and can vary more in length, use params.
Or in you example skip params and just use a string list or string array.
那么您可以通过使用
then 内部方法创建一个 Strigbuilder 并以您所需的方式将列表中的每个参数附加到它。
不清楚您的参数是否都是字符串,或者它们的类型确实不同,并且应该使用对象签名。如果参数的类型不同,我认为对对象使用 params 方法会产生更多问题而不是帮助。
如果它们都是字符串,我认为 params 是这种情况的理想解决方案。
well you could do that by using
then inside method create a Strigbuilder and append each param from list to it in your required fashion.
Its unclear whether your parameters are all strings, or they are really various by type and object signature should be used. If parameters are different by type I think having params method with objects would create more problems than help.
If they are all strings I think params is ideal solution for this situation.
像这样:
Like this: