Visual Studio 2005中编译调试新功能

http://tech.ddvip.com   2008年01月22日    社区交流

内容摘要:在Visual Studio 2005中,在调试方面,增加了大量的方便实用的新特性,可以大大提高程序员调试的效率。除了本文提到的新特性外,Visual Studio 2005还可以搭配sql server 2005调试存储过程等,这将在稍侯的文章中做介绍。

using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Step into F11 from here
UserCode();// Place break point on this line
NonUserCode();
UserCode();
}
static void UserCode()
{
Console.WriteLine("This is a call from user Code");
}
// Attribute to indicate the Debugger to jump
// over this method
[DebuggerNonUserCode]
static void NonUserCode()
{
Console.WriteLine("This is a call fron Non User Code");
}
}

  编辑时对象识别

  在Visual Studio 2005中,新引入了"Object Identity While Debugging"的概念,也就是说,系统给在调试阶段的每个对象,都可以赋予一个别名,在调试时,直接引用该别名就可以了。

  假设在调试的时候,需要跟踪比如dataset或者hashtable等对象,这些对象中包含了很多其他的子对象,如果想对这些数量众多的子对象进行跟踪的话,将十分麻烦。在Visual Studio 2005中,可以使用object identity(对象标识)的方法去标记每一个对象,

  比如,在一个windows应用程序中,创建了一个dataset,并将其绑定到datagridview中去。如将sql server 的northwind数据库中的orders和orderdetail表中的数据读出填充到dataset里去,则在调试时,设置一个断点放在dataset里填充了数据之后的那行,这时,在监视窗口中,鼠标展开this.northwindData这个dataset,如下图所示,找到orders这个table,然后鼠标右键,会弹出一个菜单,选择其中的" Make Object ID".

Visual Studio 2005中编译调试新功能

  这时,会将orders这个参数以1#的别名方式命名(见下图),并且在整个应用程序中,只要在dataset的生存期,都可以以1#的方式访问它。

Visual Studio 2005中编译调试新功能

  下图的代码演示了如何在immediate监视窗口中,通过使用object 标识,查看某一个表中所有记录的方法。要注意的是,必须将其显式类型转换为DataApp.NorthwidDataSet.OrdersDataTable。通过使用object 标识的好处是,可以在调试阶段,不需要在描述某个参数时,再用冗余的命名方法表示了(比如可以用#1来代替this.NorthwidDataSet.Orders)

Visual Studio 2005中编译调试新功能

来源:天极    作者:廖煜嵘    责编:豆豆技术应用

正在加载评论...