未将工具引用配置到工具的实例 (System.NullRefere

下面基本的表明一下这错误:
1:本质上的错误:

复制代码 代码如下:


object a;//a是Null工具
protected void Page_Load(object sender, EventArgs e)
{
a.ToString();//挪用一个Null工具的要领
}


虽然啦!功效就如下图了:

未将东西引用设置到东西的实例 (System.NullRefere

这么赤裸裸的写出这种代码,不太容易,凡是更倾向于下面一种:

2:凡是性的错误:

示例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("字段") ,这个要领较量常见,某些环境要转字符串较量,这里示例一下:

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

当Eval("字段")为Null时,一个Null.ToString(),一定也会呈现上面的错误,那什么环境呈现?
1:字段的值为Null
2:空数据行,就是你表一行数据都没有,全是Null。
复制代码

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

好了,看到本文的不管懂的照旧不懂的,此刻都应该懂了,假如你非要说你不懂,我得赞扬你智商高,下面有智商先容,别放过。

见到这异常:就是一个Null的工具挪用了要领(属性或其它成员)酿成Null.XXX激发的。

虽然啦,呈现这种异常的场景,那但是万万千,数也数不完,但本质是一样的。

小我私家概念认为,在三只鸟中产生此错误的原因各差异,根基如下:

复制代码 代码如下:


新鸟:不知道这个错误,或见这错误的次数太少,所以代码根基防都不防,仿照式,大量的函数都暗藏这种错误杀手。

小我私家揣摩:新鸟写的代码,都不加判定的原因大概:
其一:是他们不知这种环境,刚进修,履历不敷,未有处理惩罚这种异常的履历。
其二:猜测是他们高调的认为:多一个Null的判定,会使得机能下降,他们追求高机能,因此,根基上,不加。




中鸟:知道这个错误,只是思量的不多,心不足细,人不足稳,写代码根基会加,但普遍不加。

中鸟比新鸟吃的虫,必定多,所以呈现这种环境,原因虽然纷歧样了啦。
小我私家揣摩:中鸟写的代码,呈现Null引用的原因大概是:

复制代码 代码如下:


其一:没有养成思维习惯,在加班的压力下,写个函数都是刷刷的就出来了,偶然会加,普遍不加,加照旧不加,等错误出来了再加。

其二:中鸟这时期处于高机能研发性时期,最喜欢的和别人接头机能问题,出格是当for的次数到达百万级别时,当机能从0.03秒下降到0.01秒时,会为整整提高3倍的机能而欢乎,并认为这是一个重量级的发明,然后推荐推荐给厥后者,并BS一些不这么写的新手或同级的鸟。
同理:一个函数加一个null判定,得上升到百万次的挪用级此外高度思量,假如这判定被挪用百万次,那机能不是大大的损失?
假如加2个判定,那就是2*百万次的挪用,那就是相当大的机能损失,这怎么可以接管的呢?
所以,能不加就不加,加不加,等错误出来了再加。
其三:太懒了,这个本人是这么领略的说:
大伙都知道,中鸟写代码,根基都属于面向工具型的了,那就是每天和工具搞在一块的了,每个工具都要搞来搞去,再多的精也伤不起!
好吧,一个函数传一个参数,给你加一个判定,代码也不多,不算大括号就两行。
但是中鸟根基上写的函数的参数,偏偏三四五六七八九十个,这下让人纠结了:
加吧,一想,事情量太大了,并且这机能感受不高;
不加吧,仿佛也没什么问题,这么一想啊,面前阔然开朗,好,加不加,错误出来了再加。
尚有的,不只是参数的判定要折腾,函数内部发生的工具,也要搞一搞,太多工具要思量。
光靠精神与思量,加点人之常情,所以大大都环境是产生在:加不加,错误出来了再加!




老鸟:对这错误太熟悉,心也够细,写代码潜意识会主动加防,但百密一疏,该来的照旧会来,躲过月朔,躲不外十五。

老鸟吃的虫就更多了,并且老鸟们身经百战之后,以为系统不变,才是幸福。
小我私家揣摩:老鸟写的代码,呈现Null引用的原因大概是:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsdfpf.html