【发布时间】:2016-10-27 17:32:28
【问题描述】:
我有这样一个函数和它的重载:
SomeMethod(String format, params Object[] prms)SomeMethod(String str, Exception ex, String format, params Object[] prms)
问题是,当我使用签名的第二个变体时,我的应用程序决定通过第一个变体并使用“str”作为格式。我可以在不更改 params 数组类型的情况下以某种方式避免这种情况吗(在我的情况下我没有机会这样做)?
【问题讨论】:
-
你到底是怎么称呼它的?我无法重现。
-
您能说明如何调用第二种方法吗?我试图创建一个原型,当我调用第二种方法时,它只调用第二种方法。
-
@juharr 是否有可能调用具有 4 个参数的方法来调用它的重载,而不是仅使用 2 个参数?我不这么认为......不是在 C# 中
-
@meJustAndrew 当第二个具有
params修饰符并且是object的数组时。尝试使用SomeMethod("", 1, 2, 3);调用它 -
你用的是什么版本的c#?您总是可以通过
SomeMethod(str:"", ...)和SomeMethod(format:"", ...)来强制执行此操作
标签: c# overloading params