我很快就从其他地方复制代码。经过测试和调试,我一直得到非常奇怪的结果。再次比较代码后,我意识到我在公式中添加了一个额外的=

Dim lowerLeft As Integer = x = +y * terrainWidth


与此相反:

Dim lowerLeft As Integer = x + y * terrainWidth


这到底在做什么?

最佳答案

如果您有Option Strict On(并且应该),则不会编译。

表达式内的=是比较运算符。其结果是Boolean。在您的情况下,这意味着表达式等效于:

Dim lowerLeft As Integer

If x = +y * terrainWidth Then
    lowerLeft = True ' Converted to 1
Else
    lowerLeft = False ' Converted to 0
End If


Option Strict On正确地禁止这种隐式转换。

关于vb.net - 当我在数学运算中放一个“=”符号时会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11796306/

10-10 13:01