2009-03-13 5 views
0

J'ai programmé en C# pour la majorité de ma carrière .NET - maintenant je travaille sur un projet VB.net - quand le débogage me rend fou les différences de fonctionnement du débogage .Débogage VB.NET comme C#

deux du haut de ma tête sont

1) ayant pour préfixe mes requêtes de fenêtre immédiate avec?

2) ne pas être en mesure de la souris sur un GUID, je dois? MyGuid.ToString() pour voir réellement la valeur

est-il un moyen que je peux le faire se comporter comme C#?

Répondre

5

1 est pris en charge à la fois par VB et C#. Lorsque vous préfixez une requête de fenêtre immédiate avec?, Vous dites "veuillez évaluer une expression". En l'absence d'un?, Tout ce que vous tapez sera évalué comme une déclaration. Cela fait une grande différence entre les deux lignes suivantes

? a = b 
a = b 

La première est une opération de comparaison et le second est une mission.

Comme pour le deuxième numéro. Oui, c'est une expérience malheureuse pour la version actuelle de VS. La prochaine version de VS résout ce problème (et plusieurs autres dans l'espace de débogage).

Il y a un travail autour de VS2008 (et probablement VS2005) qui vous permettra de contourner le problème. Vous pouvez ajouter un DebuggerDisplay personnalisé pour le GUID qui appelle .ToString sur l'objet. J'ai écrit un billet de blog quelque temps en arrière sur la façon d'y parvenir

http://blogs.msdn.com/jaredpar/archive/2007/09/28/customzing-displays-in-the-debugger-for-system-types.aspx

1

Le? est un holdover de la langue d'origine BASIC où? était un raccourci pour l'instruction PRINT. Je suppose que PRINTing la valeur d'une variable est comme interroger les résultats (ou poser une question) d'où le point d'interrogation.

J'ai espéré plusieurs versions de Visual Basic que des mots-clés démodés tels que?, PRINT et REM disparaîtraient silencieusement, mais ils ne l'ont pas ... encore.