代码写了很久,测试时没发现问题,实际运行中发现没有动作,经过摸索与尝试,发现如下规律:
例(VB.NET):
Dim a As Integer = 4112 ‘对应二进制为 1000000010000
If ((2 ^ (4))).ToString And a = (2 ^ (4)).ToString Then
MsgBox("OK 1 -- " & 4)
End If
If (a And (2 ^ (4))).ToString = (2 ^ (4)).ToString Then
MsgBox("OK 2 -- " & 4)
End If
以上代码看似一样,只是交换了判断的位置,理应都弹出结果,但是,最终结果是 "OK 2 -- " & 4 ,代码之大,无奇不有。
此记。
20150509 记于 MS 研发部