Страница: 1 | 2 |
Вопрос: Rez = True, и при этом «If Rez = True» не выполн.!
Добавлено: 12.03.05 19:41
Автор вопроса: Comanche
Ответы
Всего ответов: 25
Номер ответа: 16
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #16
Добавлено: 14.03.05 16:19
Я имел в виду не приведение Boolean к Boolean, а приведение Integer к
Boolean:
Dim i As Int32 = 1
Dim b As Boolean = CBool(i)
Console.WriteLine b
Console.WriteLine (b=True)
Номер ответа: 17
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #17
Добавлено: 14.03.05 16:46
Это само собой.
О приведении boolean к boolean я заговорил лишь потому, что в коде автора топика функция объявлена как boolean, что и вызывает ошибку.
Номер ответа: 18
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #18
Добавлено: 14.03.05 16:53
Я тоже Boolean почти не использую. Правда, применяю вместо него не Byte, а Long. Привычка такая. Занимает на 3 байта больше, но работает быстрее.
Номер ответа: 19
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #19
Добавлено: 14.03.05 17:18
Похоже, скоро без GetMem даже в носу поковыряться не получится.
Comanche, используй цифры, 0 - признак ошибки, любое ненулевое число - признак успешного завершения. Вся эта бредятина с типами только запутывает, усложняет и тормозит код.
Номер ответа: 20
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #20
Добавлено: 14.03.05 17:51
Что возьмёшь с GOM'ика vbSREEts Ему GetMem даже по ночам наверное снится.
Номер ответа: 21
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #21
Добавлено: 14.03.05 19:20
Cresta, я уже сделал этот вывод - после первого поста GSerg. Я как-то "недооценил" вредоностность АПИ-декларации "As Boolean". Нет бы слазить в онлайновый МСДН и проверить возвращаемый ею тип, - так поверил API Guide с его "As Boolean". А в API Viewer 2004 декларация идёт и того лучше - вообще без объявления типа )
И всё равно (хотя проблема уже и исчезла), мне многое тут непонятно... я ж сам первый нашёл решение - вместо "If rez = True Then" поставить "If rez Then"... но тогда каков истинный смысл VB-шного оператора "=" ?!
Номер ответа: 22
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #22
Добавлено: 14.03.05 20:30
но тогда каков истинный смысл VB-шного оператора "=" ?!
Например в си "=" означает присваивание, т.е. занести в переменную rez значение True, а не равенство, для равенства там есть "==".
Может в vb тоже? ))
А вообще, смысл Boolean таков:
False - 0
True - всё остальное
Ориентироваться при условных переходах можно только на 0 (False). В любых ситуациях при любых типах переменных False будет равен 0. Я проверку делаю только на ноль
Else 'иначе
End If
и стараюсь не делать так:
Else 'иначе
End If
Номер ответа: 23
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #23
Добавлено: 14.03.05 21:00
Ну собственно GSerg повторил с примером то же самое что я написал выше, вот только я до GetMem недодумался Мне дизассемблер ближе
Номер ответа: 24
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #24
Добавлено: 15.03.05 10:55
Мне дизассемблер ближе
Ну вот, а когда я говорил про дизассемблер все кричали дизассемблер - маздай, отладчик - фарева.
Номер ответа: 25
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #25
Добавлено: 15.03.05 18:09
Гы Небольшое дополнение - дизассемблер отладчика )
Иначе бы я не смог подсмотреть что с чем сравнивается