2

私はすぐに他の何かからコードをコピーしていました。テストとデバッグを行ったところ、非常に奇妙な結果が得られました。コードをもう一度比較した後=、方程式の中に余分なものを追加したことに気付きました。

Dim lowerLeft As Integer = x = +y * terrainWidth

これとは対照的に:

Dim lowerLeft As Integer = x + y * terrainWidth

これは実際に何をしていましたか?

4

1 に答える 1

7

もし持っていたら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この暗黙の変換を正しく禁止します。

于 2012-08-03T13:06:42.950 に答える