Lesen Sie die Werte bereits auf der Konsole ausgegeben
Kann dies völlig unmöglich sein, aber ich Frage mich, ob es eine Möglichkeit gibt Werte gelesen, dass die Konsole bereits gedruckt. Zum Beispiel, wenn die Konsole gedruckt
Reisen Norden mit einer Geschwindigkeit von 10m/s
als Ergebnis Console.WriteLine("You are travelling north at a speed of 10m/s");
, gibt es eine Möglichkeit, Lesen Sie diese Zeile und dann, für Argumente Willen, setzen Sie diesen Wert in einen string?
Im Grunde das, was ich brauche, ist zu Lesen, was bereits in der Konsole ausgegeben, nicht die Eingabe des Benutzers. Gibt es eine Möglichkeit?
Vielen Dank im Voraus.
- Ich denke, die Antworten, die bisher geschrieben sind, missverstehen die Frage. Klingt wie OP will, um alle Texte, die geschrieben, um die Konsole (irgendwie) als programmgesteuert und setzen Sie einen string-variable.
- Mögliche Duplikate von die Erfassung der Ausgabe der Konsole aus .NET-Anwendung (C#)
- Vielleicht ist die zweite Antwort von dieser Frage ist, was du suchst: stackoverflow.com/questions/12355378/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja. Es ist ein Weg. Sie können
Console.Darlegen
Methode.Organisieren Sie Ihre main-Methode so;
Dann
consoleOutput
sollteYou are travelling north at a speed of 10m/s
.Wenn Sie wollen immer noch Ihr Ausgang zu treffen, die Konsole, die Sie verwenden können, Console.Darlegen und geben Sie zwei Ziele auf einmal, nämlich zum einen die Haupt-Konsole-Fenster und die andere, die Ihren internen Speicher.
Könnten Sie schreiben, eine einfache Helfer-Klasse wie folgt aus:
Dann in Ihrem Haupt-code, den Sie wickeln konnte Ihre Aussagen, wie unten gezeigt:
Könnte man dies ändern und haben mehrere Ziele, so könnte man erstellen Sie einen internen Speicher, der war so etwas wie
List<string>
statt, wenn Sie wollte.Hintergrund: habe ich etwas in diese Richtung (obwohl ich nicht eine Kopie der Ausgabe), wenn ich wollte, um meine NHibernate-Abfragen ausgegeben werden, die in der SQL-Registerkarte "Ausgabe" in LINQPad. Ich schrieb darüber hier (es gibt ein Github repo und NuGet-Pakete): https://tomssl.com/2015/06/30/see-your-sql-queries-when-using-nhibernate-with-linqpad/
Console.ReadKey()
- irgendwelche Vorschläge?Es ist generell eine schlechte Idee, das Lesen von Werten aus der Konsole, es sei denn, es ist von Benutzereingaben. Sie sollten den Wert in eine variable, oder wenn Sie brauchen, um es Lesen zu einem späteren Zeitpunkt, in einer Datei speichern.
Wenn du sparen willst, was du schreiben auf die Konsole, speichern Sie es in eine String-variable (erste und drucken Sie dann den Inhalt dieser variable auf der Konsole aus, etwa so:
Diese Weise können Sie den Zugriff consoleOutput, Wann immer Sie wollen.