Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
In letzter Zeit habe ich begonnen, eine Art "Müllsammlung" in den Funktionen verschiedener Compiler zu sehen. Was ist das?
Hier wird es auf die Sprache ankommen, in Sharp ist es meines Wissens nach unmöglich.
Es ist, alles, was getan werden kann, ist ein unbenutztes Objekt zu NULL zuweisen, gibt es Handbücher auf Microsoft-Website, wie zu erzwingen, um den Müllsammler aufrufen, aber es scheint, dass ich auf hubra lesen, dass nicht die Tatsache, dass der Sammler in diesem Aufruf wie erwartet gestartet werden
das heißt, in Sharp haben sie dem Programmierer den größten Teil der Speicherverwaltung abgenommen - alles ist der Gnade des Betriebssystems und des Compilers ausgeliefert
Es ist, alles, was getan werden kann, ist ein unbenutztes Objekt zu NULL zuweisen, gibt es Handbücher auf Microsoft-Website, wie zu erzwingen, um den Müllsammler aufrufen, aber es scheint, dass ich auf hubra lesen, dass nicht die Tatsache, dass der Sammler in diesem Aufruf wie erwartet gestartet werden
das heißt, in Sharp haben sie dem Programmierer den größten Teil der Speicherverwaltung abgenommen - alles ist der Gnade des Betriebssystems und des Compilers ausgeliefert
Das war's. Ich schreibe gerade mein erstes Sharp-Lehrbuch und bin erschrocken über das Fehlen von delete im Code nach new in method))).
anstelle von delete MyObj; write MyObj = null; - das wird funktionieren
und verwenden Sie dann ?? - am Anfang war es etwas umständlich, dann funktioniert es automatisch
aber es ist nicht der größte Unterschied von C++, in C# alle Objekte sind Referenzen und wenn Sie MyObj_1=MyObj_2; Sie erhalten keine Kopie, Sie erhalten einen Zeiger... Ich bin dabei, Sie zu verwirren. Hier ist eine kurze Anleitung, die ich nur überfliege, falls ich etwas vergessen habe
https://metanit.com/sharp/tutorial/2.16.php
Ich glaube, ich fange an, die Notwendigkeit und Nützlichkeit von OOP zu verstehen, aber ich habe Schwierigkeiten, es zu implementieren.
Ich habe eine Klasse, die mit drei verschiedenen Sets von Variablen verwendet werden soll. Aber sie erfüllt eine Aufgabe. Einfach ausgedrückt, können wir 3 Konstruktoren einfügen, 3 Variablen deklarieren und auf sie verweisen. Meiner Meinung nach ist das aber nicht ganz richtig. Darüber hinaus gibt es eine Variable vom Typ String in zwei Varianten, die jedoch einen unterschiedlichen Namen hat und in verschiedenen Teilen des Codes verwendet wird. Natürlich können Sie die Reihenfolge der Variablen ändern, aber ich denke, auch das ist nicht ganz korrekt.
Ich habe die Dokumentation über den neuen Operator gelesen, aber ich verstehe nicht, wie er helfen kann. Ich sehe keinen Unterschied zwischen drei verschiedenen Objektvariablen und drei Zeigern auf dieselben Objekte. Vielleicht ist es vorteilhaft, wenn Sie einen Zeiger einmal erstellen, dieses Objekt verwenden und es löschen, wenn es nicht mehr benötigt wird. Wenn Sie das Objekt jedoch regelmäßig benötigen, ist es absolut unsinnig, jedes Mal einen Zeiger darauf zu erstellen und ihn zu löschen.
Also, bitte helfen Sie mir. Ich habe einige Erklärungen zu OOP in C++ gelesen, aber sie sind dort schlechter beschrieben als in der Dokumentation zu mql5. Bitte bitten Sie die Ungeduldigen nicht, sich mir anzuschließen, ich werde zu viele Fragen stellen. Ich bin auch nicht an vorgefertigtem Code ohne Erklärungen interessiert, ich möchte ihn verstehen und nicht stupide wiederholen "Mach mit uns, mach es wie wir...".
Ich glaube, ich fange an, die Notwendigkeit und Nützlichkeit von OOP zu verstehen, aber ich habe Schwierigkeiten, es zu implementieren.
Ich habe eine Klasse, die mit drei verschiedenen Sets von Variablen verwendet werden soll. Aber sie erfüllt eine Aufgabe. Einfach ausgedrückt, können wir 3 Konstruktoren einfügen, 3 Variablen deklarieren und auf sie verweisen. Aber meiner Meinung nach ist das nicht ganz richtig. Darüber hinaus gibt es eine Variable vom Typ String in zwei Varianten, die jedoch einen unterschiedlichen Namen hat und in verschiedenen Teilen des Codes verwendet wird. Natürlich können Sie die Reihenfolge der Variablen ändern, aber ich denke, auch das ist nicht ganz korrekt.
Ich habe die Dokumentation über den neuen Operator gelesen, aber ich verstehe nicht, wie er helfen kann. Ich sehe nicht den Unterschied zwischen drei verschiedenen Objektvariablen und drei Zeigern auf dieselben Objekte. Vielleicht ist es vorteilhaft, wenn Sie einen Zeiger einmal erstellen, dieses Objekt verwenden und es löschen, wenn es nicht mehr benötigt wird. Wenn Sie das Objekt jedoch regelmäßig benötigen, ist es unsinnig, jedes Mal einen Zeiger auf das Objekt zu erstellen und es zu löschen.
Alles in allem: Bitte helfen Sie. Ich habe einige Erklärungen zu OOP in C++ gelesen, aber sie sind dort schlechter beschrieben als in der Dokumentation zu mql5. Bitte nicht ungeduldig Leute, ich werde zu viele Fragen stellen. Ich bin auch nicht an vorgefertigtem Code ohne Erklärungen interessiert, ich möchte ihn verstehen und nicht stupide wiederholen "Mach mit uns, mach es wie wir...".
Wir brauchen mehr Details. Welche Aufgabe erfüllt die Klasse?
Details sind erforderlich. Welche Aufgabe erfüllt die Klasse?
Es ist kein Geheimnis, ein Beispiel für wirtschaftliche Kalenderereignisse CalendarValueHistory(). In einem Fall sind es alle Nachrichten in dem betreffenden Zeitraum. In einem anderen nach Land und einer anderen Zeitspanne. Im dritten Fall ist es ein Symbol. Aber gibt es einen grundlegenden Unterschied? Unterteilen Programmiervorlesungen die Lösungen nach der Art der Aufgaben, die sie erfüllen?
Kürzlich traf ich jemanden, der eine Fahrprüfung nicht bestanden hatte und entrüstet behauptete, er sei in seinen Fahrstunden nicht an dieser Kreuzung gefahren und wisse einfach nicht, wie man an dieser Kreuzung fährt.
In einem anderen nach Land und in einem anderen Zeitbereich.
Länder in Aufzählung
Im Konstruktor, auch durch die üblichen Schalter - Fall, tun Sie die Initialisierung, wie Sie brauchen, zeigte ich oben eine Vorlage mit Schnittstellen, ich auch eine der Strategien im Konstruktor initialisieren, je nach den Parametern, und der Rest der Arbeit wird auf das Schreiben einer bestimmten Strategie reduziert
https://www.mql5.com/ru/forum/85652/page24#comment_13054686
Länder in Aufzählung
Im Konstruktor, auch durch die üblichen Schalter - Fall, tun Sie die Initialisierung, wie Sie brauchen, zeigte ich oben eine Vorlage mit Schnittstellen, ich auch eine der Strategien in den Konstruktor in Abhängigkeit von den Parametern zu initialisieren, und der Rest der Arbeit kommt auf das Schreiben einer bestimmten Strategie
https://www.mql5.com/ru/forum/85652/page24#comment_13054686
Langweilig... Es gibt auch Vorlagen und Schnittstellen, die beherrscht werden müssen.