Скачать MetaTrader 5

Переинициализация переменной.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vasyl Nosal
19054
Vasyl Nosal  

Мне нужно поменять тип переменной при определённой ситуации.

При таком написании new_par1 как бы пробразовывается в дабл, но потом при его использовании он все ровно string. 

string new_par1=ind1_parametr1; if(!string_(ind1_parametr1)) double new_par1=double(ind1_parametr1); 
Victor Nikolaev
Модератор
15193
Victor Nikolaev  
eevviill:

Мне нужно поменять тип переменной при определённой ситуации.

При таком написании new_par1 как бы пробразовывается в дабл, но потом при его использовании он все ровно string. 

Это только через классы можно реализовать или макросы (хотя как через макросы я не знаю).
Vasyl Nosal
19054
Vasyl Nosal  
Vinin:
Это только через классы можно реализовать или макросы (хотя как через макросы я не знаю).
В mql4 можно как то?
Victor Nikolaev
Модератор
15193
Victor Nikolaev  
eevviill:
В mql4 можно как то?
Через классы. Конечно можно. Есть хороший пример от Urain, Статья целая
Vict
170
Vict  
eevviill:

Мне нужно поменять тип переменной при определённой ситуации.

При таком написании new_par1 как бы пробразовывается в дабл, но потом при его использовании он все ровно string. 

При какой ситуации? Тип переменной окончательно известен во время компиляции?
Vasyl Nosal
19054
Vasyl Nosal  
Pavlick:
При какой ситуации? Тип переменной окончательно известен во время компиляции?
Ну да. Но мне надо чтобы в одном случае переменная была типа стринг, а в другом чтобы дабл.
Vict
170
Vict  
#define STRING_TYPE         // Если define есть, то тип строковой

void OnStart()
{
#ifdef STRING_TYPE
    string new_par1 = ind1_parametr1;
#else
    double new_par1 = ind1_parametr1;
#endif
}
Vasyl Nosal
19054
Vasyl Nosal  
Pavlick:

Спасибо большое за отклик, но что то я не доганяю как это применить.

 

Мы же if применяем к  STRING_TYPE, а не к string_(ind1_parametr1)

Vasyl Nosal
19054
Vasyl Nosal  
Vinin:
Через классы. Конечно можно. Есть хороший пример от Urain, Статья целая
Поискал. Не нашел.
Vasyl Nosal
19054
Vasyl Nosal  

Разработчики. А это как объяснить?

параметр "3"

string new_par1 = ind1_parametr1;if(!string_(ind1_parametr1)) {double new_par1=double(ind1_parametr1);Alert(new_par1);}Alert(new_par1);

 Первый алерт выдаёт нормально(всмысле как надо) что тип double. Сразу за ним алерт выдаёт что string

Vasyl Nosal
19054
Vasyl Nosal  
void*new_par1;
Может так сделаете чтобы можно было писать?
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий