Есть еще одна большая разница, которую я только что обнаружил, и я думаю, что стоит упомянуть здесь - хотя и через несколько лет после ОП! CInt({Boolean expression})
оценивается в -1, когда True
, тогда как Convert.ToInt<n>
оценивается в 1.
Это может поймать любого, кто использовал первое в математических оценках, например:
For i As Integer = 0 To 1 - CInt(processThirdItem) 'Evaluates to -1 (1 - -1 = 2)
'Do stuff...
Next
Таким образом, использование Convert.ToInt32
вместо CInt
не сработает, если вы не измените оператор с -
на +
.
Конечно, короткозамкнутая функция If
в .NET теперь предоставляет гораздо лучший способ сделать это:
For i As Integer = 0 to If(processThirdItem, 2, 1)
'Do stuff...
Next