Ein Neuankömmling fragt! - Seite 23

 
Михаил:
long ist ein variabler Typ, aber ich wiederhole, dass dies nicht richtig ist.

PositionGetInteger() gibt den Typ long zurück. Sie müssen sich nicht mit so langen Typen wieENUM_POSITION_TYPE herumschlagen.

Wie auch immer, der Programmierer führt eine Typkonvertierung durch. Schreiben Sie ihn lieber kürzer.

Sie geben hier Ratschläge für Anfänger...

 

Nextor257:

...

Warum wird (long) vor POSITION_TYPE_BUY angegeben?

...

Dies ist eine Änderung des Typs einer Variablen im laufenden Betrieb.

 
Dmitry Fedoseev:

PositionGetInteger() gibt den Typ long zurück. Sie müssen sich nicht mit so langen Typen wieENUM_POSITION_TYPE herumschlagen.

Wie auch immer, der Programmierer führt eine Typkonvertierung durch. Schreiben Sie ihn lieber kürzer.

Sie geben hier Ratschläge für Anfänger...

Falsch, denn danach wird die Vergleichsfunktion ausgeführt:

 if(type==(long)POSITION_TYPE_BUY

Und POSITION_TYPE ist nicht lang, sondern

ENUM_POSITION_TYPE

Kennung

Beschreibung

POSITION_TYPE_BUY

Kaufen

POSITION_TYPE_SELL

Verkaufen

 
Михаил:

Falsch, denn dann kommt der Vergleich:

Und POSITION_TYPE ist nicht lang, sondern

ENUM_POSITION_TYPE

Kennung

Beschreibung

POSITION_TYPE_BUY

Kaufen

POSITION_TYPE_SELL

Verkaufen

Ja... Sie haben sehr gute Kenntnisse im Programmieren.
 
Dmitry Fedoseev:
Ja... Sie haben sehr gute Programmierkenntnisse.

Sie scheinen überhaupt kein Wissen zu haben - nur Ehrgeiz!

ENUM_POSITION_PROPERTY_INTEGER

Kennung

Beschreibung

Typ

POSITION_TIME

Position Öffnungszeit

datetime

POSITION_ZEIT_MSC

Position Öffnungszeit in Millisekunden ab 01.01.1970

lang

POSITION_ZEIT_AKTUALISIERUNG

Zeit der Positionsänderung in Sekunden seit dem 01.01.1970

lang

POSITION_ZEIT_AKTUALISIERUNG_MSC

Zeit der Positionsänderung in Millisekunden seit dem 01.01.1970

lang

POSITION_TYPE

Art der Position

ENUM_POSITION_TYPE

POSITION_MAGIC

Magische Zahl für die Position (siehe ORDER_MAGIC)

lang

POSITIONSNUMMER

Die Planstellenkennung ist eine eindeutige Nummer, die jeder neu eröffneten Planstelle zugewiesen wird und während ihrer gesamten Lebensdauer unverändert bleibt. Durch die Umkehrung einer Position wird die Positionskennung nicht geändert.

lang

 
Михаил:

Sie scheinen überhaupt kein Wissen zu haben - nur Ehrgeiz!

ENUM_POSITION_PROPERTY_INTEGER

Kennung

Beschreibung

Typ

POSITION_TIME

Position Öffnungszeit

datetime

POSITION_ZEIT_MSC

Position Öffnungszeit in Millisekunden ab 01.01.1970

lang

POSITION_ZEIT_AKTUALISIERUNG

Zeit der Positionsänderung in Sekunden seit dem 01.01.1970

lang

POSITION_ZEIT_AKTUALISIERUNG_MSC

Zeit der Positionsänderung in Millisekunden seit dem 01.01.1970

lang

POSITION_TYPE

Art der Position

ENUM_POSITION_TYPE

POSITION_MAGIC

Magische Zahl für die Position (siehe ORDER_MAGIC)

lang

POSITIONSNUMMER

Die Planstellenkennung ist eine eindeutige Nummer, die jeder neu eröffneten Planstelle zugewiesen wird und während ihrer gesamten Lebensdauer unverändert bleibt. Durch die Umkehrung einer Position wird die Positionskennung nicht geändert.

lang

Für die Funktion PositionGetDouble()

Dies ist der Fall, wenn die Leute sagen: "Wenn man in das Buch schaut, sieht man eine Figur".

Versuchen Sie zuerst, es zu kompilieren:

ENUM_POSITION_TYPE z=PositionGetInteger(POSITION_TYPE);

Es wird eine Warnung geben.

Eine Funktion kann nicht in verschiedenen Fällen unterschiedliche Typen erzeugen, sie wird in jedem Fall lang sein. Und haben Sie geglaubt, dass ein und dieselbe Funktion unterschiedliche Typen zurückgibt? Ja... In diesem Forum ist niemand von Aberglauben überrascht, das ist normal...

ENUM_POSITION_TYPE in der Typspalte bedeutet, dass alle möglichen Rückgabewerte in dem entsprechenden Enumerator enthalten sind.

Die obige Tabelle bezieht sich auf PositionGetInteger(), und die unten geschriebene PositionGetDouble() hat damit überhaupt nichts zu tun.

 

Ich frage mich, wer die "Figur" sieht ....

Ich habe es so geschrieben:

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

Es handelt sich um einen fliegenden Wechsel des Typs.

Ich danke Ihnen vielmals.
 
Михаил:

Ich frage mich, wer die "Figur" sieht ....

Ich habe es so geschrieben:

ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE));

Warum schreiben Sie ENUM_POSITION_TYPE vor die PositionGetInteger? Denn Ihrer Meinung nach liefert die Funktion PositionGetInteger mit dem Bezeichner POSITION_TYPE bereits den Typ ENUM_POSITION_TYPE.

 
Dmitry Fedoseev:

Warum ENUM_POSITION_TYPE vor PositionGetInteger schreiben? Denn Ihrer Meinung nach liefert die Funktion PositionGetInteger mit dem Bezeichner POSITION_TYPE bereits den Typ ENUM_POSITION_TYPE.

Du bist der Guru der Programmierung - geh selbst ran....

Und das ist nicht mein "Glaube", sondern die Dokumentation...

Aber ich denke, dass die FunktionPositionGetInteger() immer den Wert des Typs LONG zurückgibt und es keine Rolle spielt, was "in" INTRGER oder LONG war.

Die Entwickler haben dies getan, um zu vermeiden, dass zwei Funktionen geschrieben werden.

Um den Positionstyp zu erhalten(und der ist INTEGER), ist es daher richtig, wie ich geschrieben habe:

ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE));
Grund der Beschwerde: