我宣佈一個接口上像這樣的方法:可以從Managed C++調用.NET變量長度參數方法嗎?
public interface IInterface
{
void DoSomething(string format, params object[] arguments);
}
我動態加載使用此接口的實現有管理的C++類。接口和實現都是C#。
IInterface^ foo = gcnew Implentation();
此電話爲罰款:
foo->DoSomething("string", someParam);
此調用失敗:
foo->DoSomething("string");
它看起來像如果沒有參數傳遞,它只是不能解析方法,它應接受任何參數的數量(當然包括零)。我大概可以使用nullptr作爲佔位符,但這非常難看,或者我可以添加一個多餘的超載DoSomething(string format)
,這不但不是很好,而且比讓所有調用比應該更笨拙都更好。
我錯過了什麼,或者這不被支持?互聯網上的所有助手都展示瞭如何在C++中聲明相當於params的參數,但這對我的場景沒有幫助。
要明確一點,C++類是實現接口還是使用實現它的類?文本說它使用另一個類,但'IInterface foo = new Implementation();'是C#代碼。 – porges
我已經更新了這個問題,以便更清楚。 C++類擁有一個C#類(實現C#接口)的實例。 – JRoughan
呃,對不起。是的,當然應該是 – JRoughan