Ошибки, баги, вопросы - страница 240

 

Я прекрасно знаю про укороченную оценку условия. Я надеюсь это ответ на часть вопроса. И нужные проверки будут сделаны. Во втором варианте если поменять местами s1.process и s2.process отработка идет правильная. Вопрос был не про это. А про общий результат. Общий логический результат от укороченной оценки условия не зависит. Вопрос был про поведение локальной переменной как статической, для объектов одного класса. Как известно статическую переменную объекты одного класса перезаписывают.

Мое: "По идее, код должен работать абсолютно идентично. Но... варианты работают по разному." следует понимать как "возвращаемое значение return должно быть идентично, но они разные".

Ais:

Похоже либо на скрытую рекурсию, с обычным набором побочных явлений, либо на ...


да, это похоже на на рекурсию. Но, вызываются вложенно одни и те же методы методы разных объектов. Того-же самого - исключено. Сделав вывод в файл выяснил, что d1 при возврате на уровень выше оставляет значение определенное для d1 уровня ниже. 

 
Vigor:

Я прекрасно знаю про укороченную оценку условия. Я надеюсь это ответ на часть вопроса. Во втором варианте если поменять местами s1.process и s2.process отработка идет правильная. Вопрос был не про это. А про общий результат. Общий логический результат от укороченной оценки условия не зависит. Вопрос был про поведение локальной переменной как статической, для объектов одного класса. Как известно статическую переменную объекты одного класса перезаписывают.

да, это похоже на на рекурсию. Но, вызываются вложенно одни и те же методы методы разных объектов. Того-же самого - исключено. Сделав вывод в файл выяснил, что d1 при возврате на уровень выше оставляет значение определенное для d1 уровня ниже.

 

Покажите пример, иллюстрирующий проблему. То, что Вы привели, никак не показывает "порчу локальной переменной". Рабочий код, который мы могли бы запустить у себя

 

Почему все приходится делать за разработчиков продукта? Недоверие к квалификации сторонних разработчиков? Мне казалось, что по моим подробным объяснениям достаточно проверить лишний раз, что происходит с локальными переменными методов одного класса при их вложенном вызове.

Хорошо, если у меня будет свободное время я напишу специальный пример.

 
Vigor:

Почему все приходится делать за разработчиков продукта? Недоверие к квалификации сторонних разработчиков? Мне казалось, что по моим подробным объяснениям достаточно проверить лишний раз, что происходит с локальными переменными методов одного класса при их вложенном вызове.

Хорошо, если у меня будет свободное время я напишу специальный пример.

Под отладчиком воспроизводится?
 
Vigor:

Почему все приходится делать за разработчиков продукта? Недоверие к квалификации сторонних разработчиков? Мне казалось, что по моим подробным объяснениям достаточно проверить лишний раз, что происходит с локальными переменными методов одного класса при их вложенном вызове.

Хорошо, если у меня будет свободное время я напишу специальный пример.

Мы никак не можем воспроизвести указанную проблему.
 

Как можно получить текущие цены для разных валютных пар в мультивалютнике? При тестировании SymbolInfoTick() возвращает цены только текущего инструмента и выдает ошибку 4302 при попытке обращения к другим парам.

 
-Alexey-:

Правильно ли, что по коду индикатора,

при его добавлении на график или рекомпиляции, единица печатается 2 раза? Разве условие выполняется дважды при этом? Объясните пожалуйста, мне надо чтобы один раз выполнялось.

А не проще тогда ту часть которая выполняется один раз поместить в блок инициализации?

Или там именно нужно наличие выполнения одного раза в калькуляторе индикатора?

 
stringo:
Мы никак не можем воспроизвести указанную проблему.
Пример с комментариями
Файлы:
overtest.mq5  2 kb
 
mql5:
Под отладчиком воспроизводится?
А вот под отладчиком - все в порядке.
 
Interesting:

А не проще тогда ту часть которая выполняется один раз поместить в блок инициализации?

Или там именно нужно наличие выполнения одного раза в калькуляторе индикатора?

Все, нашел. На одном графике свернутое окно второй копии индикатора было - вот оно и печатало второй раз. Так что сори, - все работает правильно. Сам не заметил :) Удалил свои предыдущие сообщения.
Причина обращения: