这篇文章主要介绍了C# NullReferenceException解决案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
最近一直在写c#的时候一直遇到这个报错,看的我心烦。准备记下来以备后续只需。
参考博客:
https://segmentfault.com/a/1190000012609600
一般情况下,遇到这种错误是因为程序代码正在试图访问一个空的引用类型的实体而抛出异常。可能的原因。
一、未实例化引用类型实体
比如声明以后,却不实例化
使用系统;
使用系统。集合。泛型;
命名空间演示
{
班级计划
{
静态void Main(string[] args)
{
列表字符串字符串;
海峡.添加('拉拉拉拉');
}
}
}
改正错误:
使用系统;
使用系统。集合。泛型;
命名空间演示
{
班级计划
{
静态void Main(string[] args)
{
Liststring str=new Liststring();
海峡.添加('拉拉拉拉');
}
}
}
二、未初始化类实例
其实道理和一是一样的,比如:
使用系统;
使用系统。集合。泛型;
命名空间演示
{
公共前夫;前妻;前男友;前女友类
{
公共字符串ex { get设置;}
}
公开课程
{
公共静态void Main()
{
ex x;
string ot=x.ex
}
}
}
修正以后:
使用系统;
使用系统。集合。泛型;
命名空间演示
{
公共前夫;前妻;前男友;前女友类
{
公共字符串ex { get设置;}
}
公开课程
{
公共静态void Main()
{
Ex x=new Ex();
string ot=x.ex
}
}
}
三、数组为null
比如:
使用系统;
使用系统。集合。泛型;
命名空间演示
{
公开课程
{
公共静态void Main()
{
int[]numbers=null;
int n=numbers[0];
控制台WriteLine('哈');
控制台。写(n);
}
}
}
使用系统;
使用系统。集合。泛型;
命名空间演示
{
公开课程
{
公共静态void Main()
{
long[][]array=new long[1][];
array[0][0]=3;
控制台WriteLine(数组);
}
}
}
四、事件为null
这种我还没有见过。但是觉得也是常见类型,所以抄录下来。
公开课演示
{
公共事件EventHandler状态已更改
受保护的虚拟void OnStateChanged(EventArgs e)
{
StateChanged(this,e);
}
}
如果外部没有注册状态已更改事件,那么调用StateChanged(this,e)会抛出NullReferenceException(未将对象引用到实例)。
修复方法如下:
公开课演示
{
公共事件EventHandler状态已更改
受保护的虚拟void OnStateChanged(EventArgs e)
{
如果(StateChanged!=空)
{
StateChanged(this,e);
}
}
}
然后在一致里面用的时候,最常见的就是没有这个游戏对象,然后你调用了它。可以参照该博客:
https://www.cnblogs.com/springword/p/6498254.html
到此这篇关于C# NullReferenceException解决案例讲解的文章就介绍到这了,更多相关C# NullReferenceException内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。