Frage

Nach dem MSDN -Dokumentaion:

Wenn Sie auf False eingestellt sind, deaktiviert die Anzeige von Deklarationswerten in der Ausgabe der interaktiven Sitzung.

Die folgende Beispiele für interaktive Sitzung scheint dieser Zusammenfassung jedoch zu widersprechen.

> let x = 42;;

val x : int = 42

> fsi.ShowDeclarationValues <- false;;

val it : unit = ()

> let y = 42;;

val y : int

Ich hatte die letzte Zeile oben nicht erwartet.

Habe ich etwas missverstanden? Kann jemand bestätigen, ob dies ein Fehler ist?

Vielen Dank.

War es hilfreich?

Lösung

Daniel hat Recht - diese deaktiviert nur das Drucken der Werte und nicht das Erklärungen sich.

Eine Situation, in der dies nützlich ist, ist, wenn Sie einen benutzerdefinierten Drucker für einen Wert definieren, der ein neues Fenster als Nebeneffekt erstellt (z. B. einen Wert, der ein Diagramm oder etwas darstellt, das Sie anzeigen möchten).

Zum Beispiel könnten Sie Folgendes schreiben:

// Display all evaluated strings in a message box
fsi.ShowDeclarationValues <- false
fsi.AddPrinter(fun (s:string) -> 
  System.Windows.Forms.MessageBox.Show(s) |> ignore; "")

let a = "foo" // Evaluating this line doesn't show message box
let b = "bar" // (dtto)
a + b         // .. but evaluating this line shows the message box!

Andere Tipps

Sieht mir das aus, dass es es nicht Zeigen Sie den Wert in der letzten Zeile an, nur den Namen und die Art der Bindung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top