我需要幫助,將一些代碼從VB轉換爲C#。將VB轉換爲C#類型轉換
Public Function ToBase36(ByVal IBase36 As Double) As String
Dim Base36() As String = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
Dim v As String
Dim i As Decimal
Do Until IBase36 < 1
i = IBase36 Mod 36
v = Base36(i) & v
IBase36 = Math.DivRem(Long.Parse(IBase36), 36, Nothing)
Loop
Return v
End Function
我的問題是類型轉換在VB中是如何工作的,這行讓我最麻煩的,因爲IBase36是雙,Math.DivRem()在這種情況下應該返回長和Long.Parse()需要字符串。
IBase36 = Math.DivRem(Long.Parse(IBase36), 36, Nothing)
這裏是我的翻譯,工作代碼感謝JaredPar和其他
public static string ToBase36(double IBase36)
{
string[] Base36 = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
string v = null;
long i = default(long);
while (!(IBase36 < 1))
{
IBase36 = Convert.ToDouble(Math.DivRem(Convert.ToInt64(IBase36), 36, out i));
v = Base36[i] + v;
}
return v;
}
代碼是從http://www.codeproject.com/KB/security/cdkeys.aspx – 2011-05-09 15:03:28