Warum funktioniert Console.Writeline, Console.Write in Visual Studio Express nicht?


169

Ich öffne gerade eine Konsolenanwendung und tippe

Console.WriteLine("Test");

Das Ausgabefenster zeigt dies jedoch nicht an. Ich gehe mit Strg + W, O zum Ausgabefenster

Aber wenn ich mein Programm starte, wird nichts angezeigt. Bin ich verrückt oder wird dies im Visual Studio 2010 Express nicht unterstützt?


3
Wie Leifgesagt, es verschwindet, bevor Sie es sehen können. Verwenden SieConsole.ReadKey()
Xaqron

Siehe auch stackoverflow.com/a/1583569/503688 für einen Mechanismus zum Umleiten der Konsolenausgabe in das Debug-Ausgabefenster.
Yooy

Antworten:


301

Console.WriteLineschreibt Ihre Ausgabe in das von Ihrer Anwendung geöffnete Konsolenfenster (denken Sie an ein schwarzes Fenster mit weißem Text, das beim Öffnen der Eingabeaufforderung angezeigt wird). Versuchen Sie es System.Diagnostics.Debug.WriteLinestattdessen.


26
Die Debug-Ausgabe wird im Ausgabefenster angezeigt (Debug => Windows => Ausgabe). Meins war standardmäßig nicht geöffnet.
Appulus

1
Wenn im Konsolenfenster keine Ausgabe vorhanden ist, überprüfen Sie auch die Eigenschaften der Anwendung auf der Registerkarte Debug-Startoptionen, um sicherzustellen, dass Sie keine Befehlszeilenargumente haben, die die Ausgabe von der Konsole umleiten.
Chad Miller

Verwenden Sie ein Tool wie technet.microsoft.com/en-us/sysinternals/debugview.aspx DebugView (dbgview), um die Debug-Meldungen zu empfangen, da sie nicht auf der cmd-Konsole angezeigt werden.
Roger Deep

19

Gehen Sie zu Eigenschaften in Ihrem eigenen Projekt im Solution ExplorerFenster und wählen Sie den Anwendungstyp aus und suchen Output Type Sie nach dem Wert und ändern Sie ihn in Console Application. Dadurch wird neben Ihrem Formular ein Konsolenbildschirm angezeigt. Wenn Sie den Konsolenbildschirm schließen, wird auch Ihr Formular geschlossen.

Viel Glück.


Mach meinen Tag! Ich kann meine LINQ-Abfrage durchlaufen und jetzt in die Konsole schreiben, was eine schnelle und kostengünstige Möglichkeit ist, die richtigen Daten in den Kampf zu bekommen.
JustJohn

15

Vielleicht wird die Konsole gelöscht. Versuchen:

Console.WriteLine("Test");
Console.ReadLine();

Und es bleibt hoffentlich dort, bis Sie die Eingabetaste drücken.


15

Keine zufriedenstellenden Antworten.

System.Diagnostics.Debug.WriteLine() schreibt Nachrichten in das Fenster Ausgabe: Debug, aber bei jedem Vorgang unter der Sonne wird ständig so viel Mist in dieses Fenster geworfen, dass es so ist, als würde man eine Nadel im Heuhaufen finden, um IHRE Nachrichten zu finden.

Console.WriteLine()schreibt nicht in ein Fenster in Visual Studio. Ich denke, es wird nur in die Anwendungskonsole geschrieben, wenn Ihre Anwendung überhaupt eine Konsole erstellt, dh wenn es sich um eine Konsolenanwendung handelt.

Warum macht das Tool die einfache Aufgabe, dass der CS-Code Ihres Webanwendungsservers einige Debug-Meldungen in ein Fenster schreibt, das mit Mist überfüllt ist, sodass es fast unmöglich ist, Ihre Informationen zu finden?


6

Oder Sie können debuggen, indem CTRL+F5ConsoleWindow nach der letzten ausgeführten Zeile wartet, bis Sie die Taste drücken.


8
Nun, das ist nicht wirklich "Debuggen", sondern nur das Starten der Anwendung, ohne den Debugger anzuhängen. : /
Damian

5

Dies ist mehr als wahrscheinlich, da Sie Console im Namespace verwendet haben. Zum Beispiel so:

namespace XYZApplication.Console
{
    class Program
    {
        static void Main(string[] args)
       {
            //Some code;             
       }
    }
}

Versuchen Sie, es aus dem Namespace zu entfernen, oder verwenden Sie stattdessen den vollständigen Namespace

   System.Console.Writeline("abc");

1
Ich hatte keine andere Konsole in meiner App, aber das Hinzufügen System.half. Vielen Dank.
Kolenda

4

Das Ausgabefenster ist nicht die Konsole. Probieren Sie die Methoden inSystem.Diagnostics.Debug


4

In der Winforms-App gibt es beide Methoden:

System.Diagnostics.Debug.WriteLine("my string")

und

System.Console.WriteLine("my string")

Schreiben Sie in das Ausgabefenster.

Schreibt in der AspNetCore-App nur System.Diagnostics.Debug.WriteLine("my string")in das Ausgabefenster.


3

Versuchen Sie Strg + F5, es hält Ihren Bildschirm, bis Sie eine beliebige Taste drücken. Grüße


2

Klicken Sie im Solution-Explorer mit der rechten Maustaste auf das Projekt und klicken Sie auf "Bereinigen".

Jetzt renn F5

Stellen Sie sicher, dass der Code wie folgt lautet:

Console.WriteLine("TEST");
Console.ReadLine();

1

Beim Ausführen eines Unit-Tests ist ein ähnliches Problem aufgetreten. Console.WriteLine()habe nichts in das VS-Ausgabefenster geschrieben.

Mit hat System.Diagnostics.Debug.WriteLine()das Problem gelöst.


1

Wenn Sie Strg-F5 verwenden (ohne Debugging starten), wird das Konsolenfenster mit der Meldung "Drücken Sie eine beliebige Taste, um fortzufahren" geöffnet. Dies ist der einfachste Weg, um zu verhindern, dass das Konsolenfenster geschlossen wird, damit Sie die Konsolenausgabe sehen können.


1

Gehen Sie zum Debug-Menü und wählen Sie Optionen und deaktivieren Sie "Den gesamten Text des Ausgabefensters in das Sofortfenster umleiten".


0

Console.Writeline() wird in der Debug-Ausgabe angezeigt (Debug => Windows => Ausgabe).


7
Nein, System.Diagnostics.Debug.WriteLine schreibt in Debug => Windows => Ausgabe, aber nicht in Console.WriteLine
Vitalii Korsakov

1
Die Person, die die Frage stellt, verwendet eine Konsolenanwendung, wobei Console.WriteLine () natürlich in die Konsole schreibt, bei der es sich um das schwarze Anwendungsfenster handelt, das wie ein DOS-Fenster aussieht. Console.WriteLine () schreibt nur in das Debug-Ausgabefenster, wenn es sich nicht um eine Konsolenanwendung handelt.
Peter Huber

"Console.WriteLine () schreibt nur in das Debug-Ausgabefenster, wenn es sich nicht um eine Konsolenanwendung handelt." Warum?
Sydney

0

Wenn Sie eine Befehlszeilenanwendung entwickeln, können Sie Console.ReadLine()am Ende Ihres Codes auch auf den Tastendruck 'Enter' warten, bevor Sie das Konsolenfenster schließen, damit Sie Ihre Ausgabe lesen können.



0

Problemumgehung Ich habe gefunden:

Drücken Ctrl + Alt + Ioder navigieren Sie zu "Debug Tab" ---> "Windows" ---> "Immediate".

Schreiben Sie in Ihren Code:

Trace.WriteLine("This is one of the workaround");

0

Das Ausgabefenster von Visual Studio 2017 verfügt über ein Menü mit dem Namen " Ausgabe anzeigen von" . In meinem Fall war ASP.NET Core Web Server die Option zum Auswählen des Ausdrucks. Ich bin auf dieses Problem gestoßen, da ich es auf " Erstellen" eingestellt hatte Ich habe die ausgedruckten Zeilen zur Laufzeit nicht gesehen.


0

Es gibt 2 mögliche Probleme:

  • Erstens haben Sie nicht das verwendet, using Systemwas sein sollte, bevor Sie Code schreiben, der "Systemklasse" verwendet, alsConsole.WriteLine()
  • Zweitens haben Sie nicht codiert, was passiert, nachdem die Konsole "Test" anzeigt.

Die mögliche Lösung wird sein:

using System;

namespace Test
{
    public static Main()
    {
        //Print to the console
        Console.WriteLine("Test");

        //Allow user to read output
        Console.ReadKey();
    }
}

Es ist auch strategisch, Console.Write("Press any key to exit...");in der Zeile vor dem zu codieren Console.ReadKey();, um den Benutzer darauf aufmerksam zu machen, dass das Programm beendet wird. Zum Beenden muss er eine beliebige Taste drücken.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.