私はすぐに他の何かからコードをコピーしていました。テストとデバッグを行ったところ、非常に奇妙な結果が得られました。コードをもう一度比較した後=
、方程式の中に余分なものを追加したことに気付きました。
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
この暗黙の変換を正しく禁止します。