以下代码在VB中做了什么?
Convert.ToInt32(rmaValidationCode.ToCharArray().GetValue(0), 16) Mod 2) = 1
注意:私有rmaValidationCode为String
答案 0 :(得分:3)
这实际上有点棘手:
让我们分开吧:
rmaValidationCode.ToCharArray().GetValue(0)
获取字符串中的第一个字符。为简单起见,用c
替换该表达式:
Convert.ToInt32(c, 16)
很有趣......因为Convert.ToInt32(char, int)
没有过载。相反,VB编译器会插入从Char
到String
的隐式转换,然后调用Convert.ToInt32(string, int)
。在这种情况下,它将其解析为十六进制。所以我们“将字符串的第一个字符解析为十六进制数字(将第一个字符转换回字符串后)”。现在让我们用x
:
(x Mod 2) = 1
只需在除以2之后取余数并测试它为1。
总的来说,这段代码测试字符串中的第一个字符是1,3,5,7,9,B,D还是F(不区分大小写)。如果是这样,结果是真的。如果第一个字符是0,2,4,6,8,A,C或E,则结果为false。如果字符串为null,空或第一个字符不是列出的字符,则抛出异常。
答案 1 :(得分:0)
Convert.ToInt32()是一个将数据类型转换为32位整数或只是一个普通整数的函数。 EX:
Dim example as Integer
其他例子:
Dim Fart as String = "6"
Private Sub Conversion()
Dim ConvertedFart as Integer = Convert.ToInt32(Fart)
End Sub
此代码将从String Fart创建一个新的Integer ConvertedFart。