J'ai mis quelques appels Console.WriteLine
à tester, mais ils n'apparaissent pas dans la zone de sortie?
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);
}
}
Quelqu'un peut-il aider?
Si vous avez l'intention d'utiliser cette sortie en production, utilisez les membres de la classe Trace . Cela rend le code portable, vous pouvez câbler différents types d'écouteurs et les afficher dans la fenêtre de la console, la fenêtre de débogage, le fichier journal ou ce que vous préférez.
S'il s'agit simplement d'un code de débogage temporaire que vous utilisez pour vérifier que ce code est en cours d'exécution ou qu'il possède les bonnes valeurs, utilisez la classe Debug comme le suggère Zach .
Si vous devez absolument utiliser la console, vous pouvez attacher une console dans la méthode Main
du programme.
Console
sorties dans la fenêtre de la console et les applications Winforms n’affiche pas la fenêtre de la console. Vous devriez pouvoir utiliser System.Diagnostics.Debug.WriteLine
pour envoyer une sortie dans la fenêtre de sortie de votre IDE.
Edit: En ce qui concerne le problème, avez-vous vérifié si votre mainForm_Load
est effectivement appelé? Vous pouvez placer un point d'arrêt au début de mainForm_Load
pour voir. S'il n'est pas appelé, je soupçonne que mainForm_Load
n'est pas connecté à l'événement Load
.
En outre, il est plus efficace et généralement préférable de remplacer On{EventName}
au lieu de s'abonner à {EventName}
à partir de classes dérivées (dans votre cas, remplacer OnLoad
au lieu de Load
).
Si vous souhaitez que la sortie Console.WriteLine("example text")
s'affiche dans la fenêtre Sortie de débogage, modifiez temporairement le type de sortie de votre application d'application console à application Windows.
Dans les menus, choisissez Projet + Propriétés, puis naviguez jusqu'à Type de sortie: liste déroulante, passez à Application Windows, puis exécutez votre application.
Bien sûr, vous devriez le modifier pour créer une application console destinée à être exécutée en dehors de l'EDI.
(testé avec Visual Studio 2008 et 2010, il devrait également fonctionner dans les dernières versions)
Si vous développez une application en ligne de commande, vous pouvez également utiliser Console.ReadLine()
à la fin de votre code pour attendre que vous appuyez sur la touche "Entrée" avant de fermer la fenêtre de la console afin de pouvoir lire votre sortie. Toutefois, les réponses de trace et de débogage indiquées ci-dessus sont de meilleures options.
Ancien thread, mais dans VS 2015 Console.WriteLine n'écrit pas dans la fenêtre de sortie si "Activer le processus d'hébergement Visual Studio" n'est pas coché ou est désactivé dans les propriétés du projet -> onglet Débogage
Quand le problème se passe sur Mac VS 2017 (auquel j'ai fait face).
Exécutez votre code d'application maintenant.
Essayez de décocher la case à cocher "Utiliser le mode de compatibilité gérée" dans
Outils => Options => Débogage => Général
Cela a fonctionné pour moi.
Utiliser Console.WriteLine( "Test" );
permet d’écrire des messages de journal dans la fenêtre de sortie (Menu Affichage -> Sortie) de Visual Studio pour un projet Windows Forms/WPF.
Cependant, j’ai rencontré un cas où cela ne fonctionnait pas et où seul System.Diagnostics.Debug.WriteLine( "Test" );
fonctionnait. J'ai redémarré Visual Studio et Console.WriteLine()
a recommencé à fonctionner. Semble être un bogue de Visual Studio.