我有多個重載方法。但我不能說正確的。如何告訴編譯器,我特別需要將「這個方法」稱爲「使用這個參數」?無法調用具有正確參數映射的方法
頑皮的方法是第二個:
public string Translate(string text, params object[] args)
{
// Blah blah blah...
}
public string Translate(string text, string category, params object[] args)
{
// Here we do some blah blah blah again...
}
這裏的時候,我嘗試調用的第一個方法是這樣的:Translate("Hello {0} {1}", "Foo", "Bar");
編譯器假定我打電話第二種方法,並設置參數作爲category = "Foo"
和args = "Bar"
。
我試圖在調用它們時命名這些參數,但它給了我一些編譯器錯誤。
Translate("Hello {0} {1}", args: "Foo", "Bar"); // CS1738
Translate("Hello {0} {1}", args: "Foo", args: "Bar"); // CS1740
我該如何做到這一點?
「Foo」是一個字符串,並且與第二個參數'category'完全匹配。傳遞一個params數組,它應該沒問題。 – NoviceProgrammer
是的,它很容易修復,但根本問題是簽名的選擇。這是刺將刺傷。這是一個超負荷的想法,一個不同的名字是更好的選擇。 –
只是要注意:如果它是相關的,你必須調用一些重載版本的特定方法,也許你應該重新考慮你的重載方法。 –