Ich versuche einen komplexen Typ zu erstellen und benötige zur Konstruktionszeit einige Aktionen.
Also fing ich an, meinen Code zu schreiben:
%Vor%
Nun, wenn man versucht, ein for oder etwas anderes aus einer Aufgabe zu setzen, wird der Compiler verrückt.
Ich nehme folgendes an: Die Syntax für new folgt der von Computational Expressions, oder besser, die neue ist ein Berechnungsausdruck (ich unterziehe das wegen der geschweiften Klammern und des Semikolons von einer Anweisung zur anderen). Und in diesem Fall ist es für Konstruktor-Berechnungsausdrücke möglich, nur Zuweisungen zu platzieren.
Also könnten Sie mir bitte antworten:
1) Ist mein Abzug korrekt? (bezüglich computational Ausdrücke und der Konstruktor für Typen).
2) Was soll ich tun, wenn ich einen artikulierten Satz von Anweisungen im Konstruktor ausführen muss? Nun, weißt du, manchmal ist es notwendig, eine Aktion zur Konstruktionszeit auszuführen und es kann alles von einem Zyklus bis zu allen Möglichkeiten beinhalten.
Aber der Compiler wird sowieso verrückt ...
Dank kvd habe ich verstanden, dass ich folgende Möglichkeiten habe:
%Vor%
Nun, es tut mir leid, aber das hilft mir nicht, weil der F # -Compiler mir das sagt:
Objektkonstruktoren können nicht direkt
Verwenden Sie versuchen / mit und versuchen Sie / schließlich vor
die Initialisierung des Objekts. Dies
enthält Konstruktoren wie 'für x
in ... "das kann zu Anwendungen von
diese Konstrukte. Dies ist eine Einschränkung
von Common IL auferlegt.
OK, wenn das Problem etwas vor der Initialisierung des Objekts tut, und es klingt korrekt, dann machen wir das nach:
%Vor%
Wieder durch Fehler frustriert:
Der Wert oder Konstruktor 'myvar' ist
nicht definiert.
Was soll ich tun ????
Es scheint, dass, nachdem es Elemente in meiner Klasse nicht erkennt, es richtig scheint, weil es einen Identifizierer wie für das Erklären von Mitgliedern erfordern würde, die self oder this verwenden ... hier hat es keine Selbstreferenz und sagt mir richtig : "Du versuchst etwas zu bekommen, was ich dir nicht geben kann !!!!!!"