未将对象引用设置到对象的实例(System.NullReferenceException)_实用技巧

更新时间:2023-07-31 12:36:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

示例1

public static string FilterValue(string value)

{

string[] filterChar = new string[] { "\'", ",", ">", "<", "=", ";", "\"", "--" };

for (int i = 0; i < filterChar.Length; i++)

{

value = value.Replace(filterChar[i], "");

}return value.Trim(' ');

}

这个函数比如容易看的出:如果value传进来为Null的时候,就等于Null.Replace被调用,就出现了上面的错误。因此,通常的,在函数的首行,都会对value进行:if(!string.IsNullOrEmpty(value)) 一下。

示例2

:<%# Eval("字段").ToString()=="1"?"Yes":"No" %>

当Eval("字段")为Null时,一个Null.ToString(),必然也会出现上面的错误,那什么情况出现?

1:字段的值为Null

2:空数据行,就是你表一行数据都没有,全是Null。

所以预防性的写法是:<%# Convert.ToString(Eval("字段"))=="1"?"Yes":"No" %

示例3

protected void Page_Load(object sender, EventArgs e)

{

strIP = Request.UserHostAddress.ToString();

strUserID = Session["userid"].ToString();

strMessage = this.tbMessage.Text;

strPostID = Request["postid"].ToString();

strReplyTime = DateTime.Now.ToString();

}

解决方案

一、你如果是在编写程序过程中测试这个index.aspx页面时出现上述错误,那么你可以如下解决:

1、用VS.NET2003或VS.NET2005(主要看这个程序工程,你原来用的是哪一个开发环境了)打开此程序工程。

2、如果点击运行没有错误,及编译后没有产生语法错误,那么就要找到是在哪个功能的哪条语句中出现了上述错误。可在能执行的地方设置断点,逐句运行程序看到哪条语句后不能执行而提示了错误。

3、如果你已经new过了对象,那么你看看你new过的对象是否已经失效,也就是看看定义的对象的作用范围是否合法。

4、并且可以使用右键的快速监测来查看对象。

5、如果你是调用了Web Services(及Web服务)那么看看你实例化的Web Services是否存在,并且你是否实例化了Web Services以及是否在程序工程中添加了Web引用,其中的不对称加密解密过程是否正确,是否执行了应该执行的程序代码。

本文来源:https://www.bwwdw.com/article/865m.html

Top