如何使用messagebox输出调试信息

我正在使用MessageBox尝试进行一些手动调试,这就是我想出来的,我该如何才能使它工作?

private void DisplayMessageBoxText() { MessageBox.Show("Alert Message"); } 

我经常使用http://www.gurock.com/smartinspect/ ,它非常适合记录各种变化,可以获取各种对象,状态等。 好的一面是你可以将它留在你的代码中,如果你以后遇到问题,只需连接到监听器,看看发生了什么。

投掷消息框也可能会中断您的程序,因为您正在更改焦点,具体取决于应用程序中出现错误的位置,例如,如果它是焦点/键类型问题,您可以将更多代码作为非焦点/重新聚焦类型消息发生得到处理。

您可以使用writeline写入调试控制台:

 System.Diagnostics.Debug.WriteLine("Alert message"); 

或者您可以使用以下方法疯狂地抛出警报框:

 System.Windows.Browser.HtmlPage.Window.Alert("Alert Message"); 

还有一些其他选项可以从您的应用程序中获取调试信息:

 Debug.Assert( - some condition - , "A condition failed"); 

如果提供的条件不为真,Debug.Assert将显示一个消息框。

另一个有用的工具是Tracepoints ,它们类似于断点,但不会破坏应用程序,而是将信息写入Debug控制台。

我不认为你是在这之后?

 MessageBox.Show("Error details here"); 

只是有机会这是你不知道的事情……

也许您正在寻找的答案更多的是这些方面?

  private void DebugObject(object obj) { string printString = ""; foreach (System.Reflection.PropertyInfo pi in obj.GetType().GetProperties()) { printString += pi.Name + " : " + pi.GetValue(obj, new object[0]) + "\n" ; } MessageBox.Show(printString); } 

此函数将所有成员及其值打印到消息框。 如果您需要任何额外信息,请点击以下链接。

(感谢Jon Skeet在这里的回复: C#VS 2005:如何在运行时获取类的公共成员列表? )