我似乎无法将以下内容从VB.NET正确转换为C# -
iKeyChar = Asc(mid(g_Key, i, 1))
iStringChar = Asc(mid(strCryptThis,i,1))
这是我转换的C#代码,似乎没有输出等效值 -
iKeyChar = Convert.ToInt32(g_Key.Substring(i, 1));
iStringChar = Convert.ToInt32(strCryptThis.Substring(i, 1));
非常感谢任何帮助!
答案 0 :(得分:8)
这是因为Mid
是一个基础而Substring
基于零。试试这种方式:
iKeyChar = (int)Convert.ToChar(g_Key.Substring(i-1, 1));
iStringChar = (int)Convert.ToChar(strCryptThis.Substring(i-1, 1));
答案 1 :(得分:1)
这是问题的ASCII位。请参见此处:http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/13fec271-9a97-4b71-ab28-4911ff3ecca0和此处:What's the equivalent of VB's Asc() and Chr() functions in C#?
答案 2 :(得分:0)
试试这个:
int iKeyChar = Convert.ToChar(g_key.Substring(i, 1));
int iStringChar = Convert.ToChar(strCryptThis.Substring(i, 1));
答案 3 :(得分:0)
只需通过字符串中的索引访问所需的字符串,然后将其转换为int
:
iKeyChar = (int)g_Key[i - 1];
iStringChar = (int)strCryptThis[i - 1];
请注意,字符串字符的索引是零(正如System Down在帖子中所说)。