![](/img/trans.png)
[英]How to convert c# code to vb.net. Error occurred in getting numeric value of a character
[英]Tried to convert VB code to C# but error occurred
我確實將VB
代碼轉換為以下C#
代碼,但是發生了錯誤。 我在Strings.InStr
和Strings.Mid
遇到錯誤。
sHeadingNm = ActiveDocument.Styles(wdStyleHeading1).NameLocal;
if (!string.IsNullOrEmpty(sHeadingNm)) {
nPos = Strings.InStr(1, sHeadingNm, "1");
if (nPos > 0)
sHeadingNm = Strings.Mid(sHeadingNm, 1, nPos - 1);
}
//=======================================================
//Service provided by Telerik (www.telerik.com)
//Conversion powered by NRefactory.
//Twitter: @telerik
//Facebook: facebook.com/telerik
//=======================================================
請幫我...
您的問題必須是Strings.InStr
和Strings.Mid
在C#中不是標准方法,而在VB.net中。 您應該添加using Microsoft.VisualBasic
才能使用它們,盡管我建議使用C#等效方法。
更好地說,您讓Telerik轉換器轉換代碼。 代碼轉換器不能安全地假定一種語言中存在的庫和函數調用不存在另一種語言中; 就他們所知,目標代碼具有一個自定義庫,該庫模仿僅源語言中存在的功能的行為。 此外,VB中大多數僅VB的功能都是基於1的,而不是.Net其余部分中的基於0的功能。
因此,您不會自動將Strings.InStr
轉換為String.IndexOf
。 您也不會看到Strings.Mid到String.Substring。 代碼尋找從Strings.Instr
或Strings.Mid
返回的“ 0”,因為沒有發現任何內容將中斷,因為“ 0”現在是成功搜索中的第一個索引。 實際上,您實際上需要隨之而來的錯誤來確定需要調整代碼的位置,以尋找正確的響應(即,搜索為-1,沒有結果)。
您需要使用C#等效功能,如下所示:
nPos = sHeadingNm.IndexOf('1');
sHeadingNm = sHeadingNm.Substring(1,nPos-1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.