2010-10-06 33 views
1

的代碼行,我需要從C翻譯++到C#:C#:如何將轉換爲const覆蓋從C++到C#

void GetAnalysisModeName(ON_wString& name) const; 

我已經試過:

public override void GetAnalysisModeName(string name){} 

但它告訴我返回類型必須是一個字符串。

+0

public override string GetAnalysisModeName(string name){}? – Gage 2010-10-06 13:15:27

回答

5

直轉換將是:

public void GetAnalysisModeName(ref string name) 
{ 
} 

但它看起來像你還試圖重寫C#類的內在的東西。

通過消息判斷返回類型必須是字符串,我會說你重寫的方法的簽名和你發佈的C++方法的簽名不匹配。

編輯

這其實是一種錯誤的理解。我再次檢查了Rhino API。您正在使用.NET SDK。您的C++示例使用C++ SDK。這兩個SDK有不同的簽名。爲了正確覆蓋.NET版本,您需要:

public string GetAnalysisModeName(){ } 

我建議您下載。 NET SDK Documentation for Rhino,以便您將其作爲參考。它還會給你一個簡單的描述,說明實施時該方法應該做什麼。

+0

我正在創建自己的分析模式並重寫其方法。 GetAnalysisMode,應該做它通常做的事情。我不知道是什麼原因,我沒有訪問原始方法。 – Bildsoe 2010-10-06 13:22:04

+0

我得到以下錯誤'kineticMold.customAnalysis'沒有實現繼承的抽象成員RMA.Rhino.MRhinoVisualAnalysisMode.GetAnalysisModeName()' – Bildsoe 2010-10-06 13:23:41

+0

@Bildsoe - AnalysisMode類是C#類嗎? – 2010-10-06 13:23:47

1

如果你正在重載的函數返回一個字符串,你的函數必須返回一個字符串。如果您沒有基礎功能,請從聲明中刪除覆蓋。

1

這是你在找什麼?

public void GetAnalysisModeName(ref string name){} 

ref關鍵字具有類似意義的C++ &:它表示參考參數。

但重要的是,誰/什麼告訴你,返回類型必須是一個字符串?

+0

Visual Studio Express,我收到一個警告,告訴我返回類型必須是字符串。 – Bildsoe 2010-10-06 13:20:39

+0

你能給我們提供一些關於「C++轉換爲C#」的含義的更多信息嗎?什麼是編譯器檢查'預期'簽名? – Ani 2010-10-06 13:22:49