这纯属零技术含量,只是看到一些BI的朋友们常常问些基础问题,比如为什么会出现“未将对象引用到实例”,“这段代码哪里错了”,其实这类问题太好解决了。断点调试一下,看看出错信息,通常就OK了,这里简要的说一下。
以后这类问题自己就解决了,虽然很简单,但是我觉得有必要,希望会的同学不要“抖人”哈(四川/重庆方言:打人的意思)。
什么是断点,这点你知道不?如果这个都不知道,那你确实不会进行断点调试,简言之:断点就是使用程序在运行进程中,中断进行,停下来的那个点。(这是我自己的话,不是官方版本)
你在一个地方打一个断点,程序运行到那里会停下来,你可以检查已经运行的那部分代码有没有问题,是不是按照你的逻辑来进行的。有了断点,你还可以让程序一步一步执行,看看你的循环,递归是不是正确……总之,优点很多。
要打断点,很简单,在代码里,点一下鼠标或按一下F9即可;删除断点,就用鼠标点一下,或者在该行按一下F9就行。
看到没有,行号左边红色的点就是断点。
注:如果你想查看你的所有断点,你可以按ctrl + alt + b,弹出breakpoints框来查看所以断点。
如何使用?
以下面一小截函数为例,点击某个按钮,就会执行这个函数。
复制内容到剪贴板
代码:
protected void Button1_Click(object sender, EventArgs e)
{
int i=0;
string str1 = "22";
string str2 = "hello";
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Default"].ConnectionString))
{
try
{
i++;
int.TryParse(str1, out i);
int.TryParse(str2, out i);
conn.Open();
}
catch (SqlException sqlex)
{
Trace.Warn(sqlex.Message);
}
catch (Exception ex)
{
Trace.Warn(ex.Message);
}
finally
{
conn.Close();
}
}
}断点打在 int.TryParse(str1, out i)那行,运行一下程序,点击一下那个Button,进入函数,程序停在断点位置:

现在你可以查看前面的代码,运行是否正确了:
打开locals窗口,可以看到你定义的局部变量和它们现在的值。

按一下F10或F11,继续下一步:

可以看到黄色一行前进到line29去了。locals窗口有变化:i的值变成红色的22,表示这个值是更改过的。
除了locals窗口,更有用的更改是watch窗口,它可以一直监视某个变量:
在要监视的变量上点右键,点"Add Watch"。

在watch窗口就是监视到它的值,跟踪到它的改变,这比asp那个response.write sql要好得多吧,我直接watch一下Sql这个变量就行了,就不用response.write什么了。
发现异常,更好解决:
总之,出现问题时,自己去断点调试,收获更多。
完成没有技术含量,只是希望初学者快些入门,能迅速解决自己的问题。
[
本帖最后由 99love 于 2008-3-12 17:23 编辑 ]