Новая версия платформы MetaTrader 5 build 3320: Улучшения и исправления - страница 15
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это системная функция языка. Считаю, что переназначать системные функции/константы очень плохая идея мягко говоря, а грубо говоря - высшая степень садомазохизма))
Однако, это код от MQ без каких-либо warnings. Явная неоднозначность.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 3320: Улучшения и исправления
Renat Fatkhullin, 2022.08.03 06:40
не дай бог, если вы с такими неоднозначностями пишите боевой код. В профессиональных больших проектах вас просто выгонят и правильно сделают.
С this вы продемонстрировали осознанный самострел с последующим корявым исправлением, не говоря уже о тотальном замусоривании кода.
Это системная функция языка. Считаю, что переназначать системные функции/константы очень плохая идея мягко говоря, а грубо говоря - высшая степень садомазохизма))
Для класса обертки над системными функциями, когда метод класса прямо похож на системную функцию - это разумно (обертка должна как можно ближе быть к сути) и осознанно.
Внутри функци область видимости правильно указана:
Внутри функци область видимости правильно указана:
Автор этого кода просто не хотел попасть в рекурсию, поэтому написал через "замусоривание". Очевидно же, что ответ на этот вопрос
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 3320: Улучшения и исправления
fxsaber, 2022.08.03 09:05
Можете понять при чтении, что за OrderSend вызывается?
Однако, это код от MQ без каких-либо warnings. Явная неоднозначность.
Никакой неоднозначности нет ни по какому критерию.
Класс-обертка выполняет то, что задумано в рамках своей области видимости.
Это системная функция языка. Считаю, что переназначать системные функции/константы очень плохая идея мягко говоря, а грубо говоря - высшая степень садомазохизма)) А Вы любитель дефайнить всё что дефайниться и даже что не дифайнется тоже умудряетесь.)
А как вам это из того-же файла библиотеки
Автор этого кода просто не хотел попасть в рекурсию, поэтому написал через "замусоривание". Очевидно же, что ответ на этот вопрос
Не учите профессионалов, пожалуйста.
Что вызывается, легко узнать навигатором по коду. Не придумывайте проблем там, где их нет.
Никакой неоднозначности нет ни по какому критерию.
С точки зрения компилятора - да. Но это не мои слова.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 3320: Улучшения и исправления
Renat Fatkhullin, 2022.08.03 06:40
Но не дай бог, если вы с такими неоднозначностями пишите боевой код. В профессиональных больших проектах вас просто выгонят и правильно сделают.
Заложена потенциальная проблема лишь по той причине, чтобы не писать this.
Выше дали ссылку на обсуждение трехлетней давности. Прочел - понравилось объяснение. Приведу его здесь.
Выделил цветом причину обязательного "замусоривания" кода. В кодобазе такой "замусоренный" код и выкладываю. Мне он значительно понятнее при чтении, чем СБ.
Например, вот читаю кусок штатного файла MQL5\Include\Trade\Trade.mqh:
Можете понять при чтении, что за OrderSend вызывается?
Что вызывается, легко узнать навигатором по коду.
Главное, не забывать на "штатных" функциях в ME нажимать ALT+G. Ну а мало ли это нештатная функция...
При чтении же в Web или в других редакторах, наверное, нужно делать что-то другое.
Для класса обертки над системными функциями, когда метод класса прямо похож на системную функцию - это разумно (обертка должна как можно ближе быть к сути) и осознанно.
Внутри функци область видимости правильно указана:
я как раз об этом и говорю, что в рамках класса можно делать и разумно делать всё что угодно и удобно, но переназначать системные функции глобально (как это делает fxsaber) - это даже не выстрел в ногу, а в голову - пользователь кода обязательно когда ни будь получит результат не тот, который ожидал.
а в приведённом примере из СБ как раз всё хорошо.