Как Visual Basic 6 преобразует целые числа в логические? - PullRequest
2 голосов
/ 02 февраля 2012

Я читаю следующий код в vb6

If someInteger Then
    DoSomething
End If

Я не знаю, означает ли это

  1. someInteger == 1
  2. someInteger > -1
  3. someInteger > 0 или
  4. Convert.ToBoolean(someInteger)

Какое эквивалентное выражение в C #?

Ответы [ 3 ]

4 голосов
/ 02 февраля 2012

В VB6 любое ненулевое значение считается Истиной;ноль это ложь.Я бы посоветовал всегда указывать выражение так, как оно было (и должно быть): boolean:

If someInteger <> 0 Then ...
3 голосов
/ 02 февраля 2012

Это объясняется здесь . Речь идет о VB.NET, но это поведение не отличается от VB6.

По сути, If someInteger Then ... эквивалентно If someInteger <> 0 Then ..., поэтому все, что не равно нулю, равно True, будь то 1, 2, -1 и т. Д.

2 голосов
/ 02 февраля 2012

If someInteger Then истинно, только если someInteger не 0, поэтому

if (someInteger != 0) { ...

...