2015-03-02 51 views
-4

我已經給出了一些C#代碼,它定義了一些私有字符串,但我不確定它在做什麼,並且需要爲我的項目轉換爲VB,但是如果有人可能需要一點時間解釋並可能提供轉換?將C#轉換爲VB - 私有字符串語句

private string GetChecksum(StringBuilder buf) 
      { 
     // calculate checksum of message 
     uint sum = 0; 
     for (int i = 0; i < buf.Length; i++) 
     { 
      sum += (char)buf[i]; 
       } 
     return string.Format("{0:X04}", sum); 
    } 
+2

http://converter.telerik.com/ – Plutonix 2015-03-02 16:07:32

+1

它是你不明白的_syntax_或_procedure_嗎?它所做的就是將字符串中每個字符的ASCII值相加,最終結果模65536,因爲沒有溢出檢查。 – 2015-03-02 16:10:50

回答

1

private string ...的部分是方法聲明。 C#的

輔助返回類型方法名類型PARAMNAME

轉化爲

輔助Function方法名PARAMNAMEAs類型As返回類型

+0

感謝bu對函數的內容更感興趣: uint sum = 0; (int i = 0; i Rob4236 2015-03-02 16:10:30

1
Private Function GetChecksum(buf As StringBuilder) As String 
    'calculate checksum of message 
    Dim sum As UInteger = 0 
    For i As Integer = 0 To buf.Length - 1 
     sum += CChar(buf(i)) 
    Next 
    Return String.Format("{0:X04}", sum) 
End Function 
+0

我認爲'CChar'是多餘的,因爲'buf(i)'已經是Char了。 – 2015-03-02 16:38:18

+0

此外,由於+操作符不能應用於Char和UInteger,因此不會使用Option Strict On進行編譯。 – 2015-03-02 16:51:12

0

該函數是什麼加起來每個字符的ASCII值字符串(存儲在一個2字節char在沒有溢出檢查)並將結果作爲字符串返回 - 2字節結果的4個字符的十六進制表示。

校驗和用於檢測數據錯誤;如果兩個字符串產生不同的校驗和,那麼它們不能相等。但是,給出相同校驗和的兩個字符串不一定相等,所以它不能用於驗證相等性。