Un nuovo arrivato chiede! - pagina 23

 
Михаил:
long è un tipo variabile, ma ripeto che non è giusto.

PositionGetInteger() restituisce il tipo long. Non c'è bisogno di preoccuparsi di tipi così lunghi comeENUM_POSITION_TYPE.

Comunque, il programmatore esegue una conversione di tipo. È meglio che lo scriviate più corto.

Qui danno consigli ai programmatori principianti...

 

Nextor257:

...

Perché (long) è specificato prima di POSITION_TYPE_BUY?

...

Questo è un cambiamento di tipo da parte di una variabile al volo.

 
Dmitry Fedoseev:

PositionGetInteger() restituisce il tipo long. Non c'è bisogno di preoccuparsi di tipi così lunghi comeENUM_POSITION_TYPE.

Comunque, il programmatore esegue una conversione di tipo. È meglio che lo scriviate più corto.

Qui danno consigli ai principianti...

Sbagliato, perché questo è un confronto:

 if(type==(long)POSITION_TYPE_BUY

E POSITION_TYPE non è lungo, ma

ENUM_POSITION_TYPE

Identificatore

Descrizione

TIPO DI POSIZIONE_ACQUISTO

Compra

TIPO DI POSIZIONE_VENDITA

Vendere

 
Михаил:

Sbagliato, perché poi arriva il confronto:

E POSITION_TYPE non è lungo, ma

ENUM_POSITION_TYPE

Identificatore

Descrizione

TIPO DI POSIZIONE_ACQUISTO

Compra

TIPO DI POSIZIONE_VENDITA

Vendere

Sì... hai una conoscenza molto profonda della programmazione.
 
Dmitry Fedoseev:
Sì... hai una conoscenza molto profonda della programmazione.

Sembra che tu non abbia alcuna conoscenza - solo ambizione!

ENUM_POSITION_PROPERTY_INTEGER

Identificatore

Descrizione

Tipo

ORA POSIZIONE

Tempo di apertura della posizione

datetime

POSIZIONE_TEMPO_MSC

Tempo di apertura della posizione in millisecondi dal 01.01.1970

lungo

AGGIORNAMENTO POSIZIONE/TEMPO

Tempo di cambiamento di posizione in secondi dal 01.01.1970

lungo

POSIZIONE_TEMPO_AGGIORNAMENTO_MSC

Tempo di cambiamento di posizione in millisecondi dal 01.01.1970

lungo

TIPO DI POSIZIONE

Tipo di posizione

ENUM_POSITION_TYPE

POSIZIONE_MAGICO

Numero magico per la posizione (vedere ORDER_MAGIC)

lungo

IDENTIFICATORE DI POSIZIONE

L'identificatore di posizione è un numero unico, che viene assegnato ad ogni posizione appena aperta e rimane invariato per tutta la sua durata. L'inversione di una posizione non cambia l'identificatore di posizione.

lungo

 
Михаил:

Non sembra avere alcuna conoscenza - solo ambizione!

ENUM_POSITION_PROPERTY_INTEGER

Identificatore

Descrizione

Tipo

ORA POSIZIONE

Tempo di apertura della posizione

datetime

POSIZIONE_TEMPO_MSC

Tempo di apertura della posizione in millisecondi dal 01.01.1970

lungo

AGGIORNAMENTO POSIZIONE/TEMPO

Tempo di cambiamento di posizione in secondi dal 01.01.1970

lungo

POSIZIONE_TEMPO_AGGIORNAMENTO_MSC

Tempo di cambiamento di posizione in millisecondi dal 01.01.1970

lungo

TIPO DI POSIZIONE

Tipo di posizione

ENUM_POSITION_TYPE

POSIZIONE_MAGICO

Numero magico per la posizione (vedere ORDER_MAGIC)

lungo

IDENTIFICATORE DI POSIZIONE

L'identificatore di posizione è un numero unico, che viene assegnato ad ogni posizione appena aperta e rimane invariato per tutta la sua durata. L'inversione di una posizione non cambia l'identificatore di posizione.

lungo

Per la funzione PositionGetDouble()

Questo è il caso in cui la gente dice: "quando si guarda nel libro, si vede una figurina".

Provate a compilarlo prima:

ENUM_POSITION_TYPE z=PositionGetInteger(POSITION_TYPE);

Ci sarà un avvertimento.

Una funzione non può produrre tipi diversi in casi diversi. Sarà lunga in ogni caso. E avete creduto che la stessa funzione restituisce tipi diversi? Sì... Nessuno si sorprende delle superstizioni su questo forum, è normale...

ENUM_POSITION_TYPE nella colonna type significa che tutti i possibili valori di ritorno sono nell'enumeratore corrispondente.

Sarebbe anche utile fare più attenzione, la tabella sopra si riferisce a PositionGetInteger(), e la PositionGetDouble() scritta sotto non ha niente a che fare con essa.

 

Mi chiedo chi vede la "figura" ....

L'ho scritto in questo modo:

ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE));
 
Dmitry Fedoseev:

Questo è un cambio di tipo al volo.

Grazie mille.
 
Михаил:

Mi chiedo chi vede la "figura" ....

L'ho scritto così:

ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE));

Perché scrivere ENUM_POSITION_TYPE prima del PositionGetInteger? Perché, secondo la vostra convinzione, la funzione PositionGetInteger con l'identificatore POSITION_TYPE restituisce già il tipo ENUM_POSITION_TYPE.

 
Dmitry Fedoseev:

Perché scrivere ENUM_POSITION_TYPE prima di PositionGetInteger? Perché, secondo la vostra convinzione, la funzione PositionGetInteger con identificatore POSITION_TYPE restituisce già il tipo ENUM_POSITION_TYPE.

Sei il guru della programmazione - vai a rispondere tu stesso....

E questa non è la mia "convinzione", ma la documentazione...

Ma credo che la funzionePositionGetInteger() restituisca sempre il valore del tipo LONG e non importa cosa ci fosse "dentro" INTRGER o LONG.

Gli sviluppatori l'hanno fatto per evitare di scrivere due funzioni.

Quindi, per ottenere il tipo di posizione(ed è INTEGER) è corretto fare come ho scritto:

ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE));