Привет всем.
Когда я пытаюсь в индикаторе объявить глобальную переменную
AddGlobalVariable("OpenTime", Types.DateTime);
(согласно документации это возможно), то при попытке ее использования, например,
OpenTime=AsTime(0, 0, 0);
компилятор ругается, что такой переменной нет...
В чем проблема?.. С другими типами всё ОК...
Общие вопросы по разработке > Глобальная переменная типа Types.DateTime не видна в коде индикатора
-
- Сообщения: 524
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 88 раз
-
- Сообщения: 524
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 88 раз
Re: Глобальная переменная типа Types.DateTime не видна в коде индикатора
Привет, evge, спасибо за подсказку. (Хорошо бы ее внести в FAQ.)
Однако, не совсем понятно, почему диагностика компилятора идет "переменной <Имя> нет в контексте" (т.е. якобы не объявлена) вместо чего-то более правильного вроде "невозможно сконвертировать". Похоже на баг. Даже можно предположить, что парсер секции инициализации при неуспехе иициализации переменной вместо выдачи ошибки тупо игнорирует декларацию. Но не помогает даже декларация БЕЗ инициализации (есть же такой вариант, документирован); ведь в этом случае за сценой д.б. присвоено значение по умолчанию, _совместимое_ с типом переменной, т.е. инициализация д. пройти без ошибки, и переменная д.б. доступна в секции Evaluate по-любому.
Однако, не совсем понятно, почему диагностика компилятора идет "переменной <Имя> нет в контексте" (т.е. якобы не объявлена) вместо чего-то более правильного вроде "невозможно сконвертировать". Похоже на баг. Даже можно предположить, что парсер секции инициализации при неуспехе иициализации переменной вместо выдачи ошибки тупо игнорирует декларацию. Но не помогает даже декларация БЕЗ инициализации (есть же такой вариант, документирован); ведь в этом случае за сценой д.б. присвоено значение по умолчанию, _совместимое_ с типом переменной, т.е. инициализация д. пройти без ошибки, и переменная д.б. доступна в секции Evaluate по-любому.
-
- Сообщения: 170
- Зарегистрирован: 18 дек 2017, 08:18
- Благодарил (а): 12 раз
- Поблагодарили: 8 раз
Re: Глобальная переменная типа Types.DateTime не видна в коде индикатора
Доброго времени суток, BugsDigger
2) Для AddGlobalVariable третий параметр по умолчанию равен null, а DateTime c точки зрения C# - имеет не обнуляемый тип значения по умолчанию(datetime is non-nullable value type).
AdsPropertyStr = null = "", что не может конвертироваться в дату.С наилучшими пожеланиями
1) Для AddGlobalVariable ==> AdsPropertyStr ==> string.BugsDigger писал(а):Однако, не совсем понятно, почему диагностика компилятора идет "переменной <Имя> нет в контексте"
2) Для AddGlobalVariable третий параметр по умолчанию равен null, а DateTime c точки зрения C# - имеет не обнуляемый тип значения по умолчанию(datetime is non-nullable value type).
AdsPropertyStr = null = "", что не может конвертироваться в дату.
Мысли вслух писал(а):Еще больше запутал.![]()
► Показать
Вернуться в «Общие вопросы по разработке»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей