Ich habe einige Console.WriteLine
Anrufe zum Testen eingegeben, aber sie werden nicht im Ausgabefeld angezeigt.
public static ArrayList myDeliveries = new ArrayList();
public mainForm(){
InitializeComponent();
}
private void mainForm_Load(object sender, EventArgs e){
if (!File.Exists("../../MealDeliveries.txt")){
MessageBox.Show("File not found!");
return;
}
using (StreamReader sr = new StreamReader("../../MealDeliveries.txt")){
//first line is delivery name
string strDeliveryName = sr.ReadLine();
Console.WriteLine("Test content");
while (strDeliveryName != null){
//other lines
Delivery d = new Delivery(
strDeliveryName,
sr.ReadLine(),
sr.ReadLine(),
sr.ReadLine(),
sr.ReadLine(),
sr.ReadLine(),
sr.ReadLine()
);
mainForm.myDeliveries.Add(d);
//check for further values
strDeliveryName = sr.ReadLine();
}
}
displayDeliveries();
}
private void displayDeliveries(){
lstDeliveryDetails.Items.Clear();
Console.WriteLine("Test content");
Console.WriteLine(mainForm.myDeliveries.Count);
foreach (Delivery d in mainForm.myDeliveries){
lstDeliveryDetails.Items.Add(d.DeliveryName);
}
}
Kann jemand helfen??
Antworten:
Wenn Sie diese Ausgabe in der Produktion verwenden möchten , verwenden Sie die Trace- Klassenmitglieder. Dadurch wird der Code portabel. Sie können verschiedene Arten von Listenern verkabeln und an das Konsolenfenster, das Debug-Fenster, die Protokolldatei oder was auch immer Sie möchten ausgeben.
Wenn dies nur ein temporärer Debugging-Code ist, mit dem Sie überprüfen, ob bestimmter Code ausgeführt wird oder die richtigen Werte aufweist, verwenden Sie die Debug- Klasse, wie Zach vorschlägt.
Wenn Sie die Konsole unbedingt verwenden müssen, können Sie eine Konsole in der Programmmethode anhängen
Main
.quelle
Console
Ausgaben im Konsolenfenster und in Winforms-Anwendungen zeigen das Konsolenfenster nicht an. Sie sollten in der Lage seinSystem.Diagnostics.Debug.WriteLine
, Ausgaben an das Ausgabefenster in Ihrer IDE zu senden.Bearbeiten: Haben Sie in Bezug auf das Problem überprüft, ob Ihr Anruf
mainForm_Load
tatsächlich erfolgt? Sie können einen Haltepunkt am Anfang von setzen, ummainForm_Load
zu sehen. Wenn es nicht aufgerufen wird, vermute ich, dassmainForm_Load
es nicht mit demLoad
Ereignis verbunden ist.Außerdem ist es effizienter und im Allgemeinen besser, sie zu überschreiben,
On{EventName}
anstatt sie{EventName}
aus abgeleiteten Klassen heraus zu abonnieren (in Ihrem Fall überschreibenOnLoad
stattLoad
).quelle
Import System.Diagnostics
es viel einfacher machen. Und ich bevorzuge es, dieTrace
Klasse dafür zu verwenden.System.Diagnostics.Debug.WriteLine
.Wenn die
Console.WriteLine("example text")
Ausgabe im Fenster "Debug-Ausgabe" angezeigt werden soll, ändern Sie vorübergehend den Ausgabetyp Ihrer Anwendung von "Konsolenanwendung" in "Windows-Anwendung".Wählen Sie in den Menüs Projekt + Eigenschaften und navigieren Sie zu Ausgabetyp: Dropdown, wechseln Sie zu Windows-Anwendung und führen Sie Ihre Anwendung aus
Natürlich sollten Sie es wieder ändern, um eine Konsolenanwendung zu erstellen, die außerhalb der IDE ausgeführt werden soll.
(Mit Visual Studio 2008 und 2010 getestet, sollte es auch in letzteren Versionen funktionieren.)
quelle
Mit
Console.WriteLine( "Test" );
können Sie Protokollnachrichten in das Ausgabefenster (Menü Ansicht -> Ausgabe) in Visual Studio für ein Windows Forms / WPF-Projekt schreiben.Ich bin jedoch auf einen Fall gestoßen, in dem es nicht funktionierte und nur
System.Diagnostics.Debug.WriteLine( "Test" );
funktionierte. Ich habe Visual Studio neu gestartet und wiederConsole.WriteLine()
angefangen zu arbeiten. Scheint ein Visual Studio-Fehler zu sein.quelle
Wenn Sie eine Befehlszeilenanwendung entwickeln, können Sie auch
Console.ReadLine()
am Ende Ihres Codes auf den Tastendruck 'Enter' warten, bevor Sie das Konsolenfenster schließen, damit Sie Ihre Ausgabe lesen können. Sowohl die oben angegebenen Trace- als auch die Debug-Antworten sind jedoch bessere Optionen.quelle
Deaktivieren Sie das Kontrollkästchen "Verwalteten Kompatibilitätsmodus verwenden" in
Es hat bei mir funktioniert.
quelle
Wenn ein Problem auf dem Mac VS 2017 auftritt (mit dem ich konfrontiert war).
Führen Sie jetzt Ihren Anwendungscode aus.
quelle
Alter Thread, aber in VS 2015 Console.WriteLine schreibt nicht in das Ausgabefenster, wenn "Visual Studio-Hosting-Prozess aktivieren" in den Projekteigenschaften -> Registerkarte "Debuggen" nicht aktiviert oder deaktiviert ist
quelle
Wählen Sie Ansicht >> Ausgabe , um das Ausgabefenster zu öffnen.
Im Ausgabefenster sehen Sie das Ergebnis
quelle