什么相当于VB的ASC()函数?

时间:2014-09-26 07:54:54

标签: vb.net

我有以下代码,我需要摆脱Microsoft.VisualBasic函数ASC():

Dim keyWithoutDashes As String = p_licenseKey.Replace("-", "").Trim.ToLower
Dim checksum As Int32 = 0
Dim modValue As Byte
Dim checkValue As Byte
Dim checkChar As Char
checksum = 0
checkValue = CByte(Asc(keyWithoutDashes.Substring(24, 1)))
For pos = 0 To 23
    checksum += CByte(Asc(keyWithoutDashes.Substring(pos, 1)))
Next
checksum = checksum Mod 34
modValue = CByte(Asc(VALID_CHARACTERS_BACKWARD.Substring(checksum, 1)))
If modValue <> checkValue Then
    m_keyErrorMessage = "Invalid LicenseKey"
    Return False
End If

我尝试将int转换为int但没有成功。有什么建议吗?

我需要让代码在Microsoft可移植类库中运行。

1 个答案:

答案 0 :(得分:1)

答案归功于Hans Passant上面的评论:

checksum = 0
checkValue = Encoding.ASCII.GetBytes(keyWithoutDashes.Substring(24, 1))(0)
For pos = 0 To 23
  checksum += Encoding.ASCII.GetBytes(keyWithoutDashes.Substring(pos, 1))(0)
Next
checksum = checksum Mod 34
modValue = Encoding.ASCII.GetBytes(
  VALID_CHARACTERS_BACKWARD.Substring(checksum, 1))(0)

If modValue <> checkValue Then
  m_keyErrorMessage = "Invalid LicenseKey"
  Return False
End If