2010-05-25 137 views
1

我对VB.NET根本不熟悉。我需要将此函数转换为C#。任何人都可以请给我一只手吗?帮助需要将此代码转换为C#

Public Function GetAppGUID(ByVal sectionId As String) As String 

    Dim hexString As String = Nothing 
    Dim i As Integer 
    Dim guidlen As Integer 

    guidlen = 16 

    If sectionId.Length < guidlen Then 
     sectionId = sectionId & New String(" ".Chars(0), guidlen - sectionId.Length) 
    End If 

    For i = 1 To guidlen 
     hexString = hexString & Hex(Asc(Mid(sectionId, i, 1))) 
    Next 

    GetAppGUID = hexString 

End Function 
+3

能否请你解释为什么你不能使用互联网搜索? :http://www.developerfusion.com/tools/convert/vb-to-csharp/ – 2010-05-25 03:49:32

+2

如果你解释代码的目的是什么,它可能会有所帮助。 – swanson 2010-05-25 04:02:28

+2

VB.net基本上是伪代码,好奇地知道你打算如何处理它,如果你不能将一些伪代码翻译成C# – jsmith 2010-05-25 04:05:05

回答

1

C#的解决方案是低于

private string GetAppGUID(string sectionId) 
    { 
     string hexString = null; 
     int i = 0; 
     int guidLength = 0; 

     guidLength = 16; 

     if (sectionId.Length < guidLength) 
     { 
      sectionId = sectionId + new string(" "[0], guidLength - sectionId.Length); 
     } 

     foreach (char c in sectionId) 
     { 
      int tmp = c; 
      hexString += String.Format("{0:x2}", (uint)System.Convert.ToUInt32(tmp.ToString())) 
     } 

     return hexString; 
    } 
1

该方法使用了一些没有C#等效的VB特定函数。该功能可以很容易地近似,但按原样使用,只需添加对Microsoft.VisualBasic的引用即可。

public string GetAppGUID(string sectionId) 
    { 

     string hexString = null; 
     int i = 0; 
     int guidlen = 0; 

     guidlen = 16; 

     if (sectionId.Length < guidlen) 
     { 
      sectionId = sectionId + new string(' ', guidlen - sectionId.Length); 
     } 

     for (i = 1; i <= guidlen; i++) 
     { 
      hexString = hexString 
       + Microsoft.VisualBasic.Conversion.Hex(Microsoft.VisualBasic.Strings.Asc(Microsoft.VisualBasic.Strings.Mid(sectionId, i, 1))); 
     } 

     return hexString; 

    } 
+0

工具只能走得太远 - 例如字符(0) - 这可能会混淆。 – 2010-05-25 03:50:56

+0

@代码诗人:我已经做了CW。随意编辑。 – 2010-05-25 03:52:02

+0

好 - 现在可能会更好。 – 2010-05-25 06:33:31

0

这些工具不知道一些VB函数。在C#中没有Conversion.Hex或Strings.Asc,String.Mid。任何帮助?

0

谢谢大家。我以前说过一些垃圾。工具是好的,是的,他们转换为你。但令人困惑的是对的。该工具使用Microsoft.VisualBasic来执行

hexString = hexString + Conversion.Hex(Strings.Asc(Strings.Mid(sectionId,i,1)));

哪一种是好的。有没有人看到这有什么问题?

感谢