,,C# NullReferenceException解决案例讲解

,,C# NullReferenceException解决案例讲解

这篇文章主要介绍了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 设计一个简单的C#控制台应用程序,C#控制台程序,C# 创建控制台应用程序
  • 深入解析windows第8版,深入解析C#(第4版)
  • 数组代码,c# 数组操作,C# 数组实例介绍(图文)
  • 学会C#要多久,学会c#要多久,c#学习之30分钟学会XAML
  • 回溯法01背包问题c,回溯法求解01背包问题伪代码,C#使用回溯法解决背包问题实例分析
  • xml文件转义字符,xml转意字符,C# XML中的转义字符操作
  • winform 进度条控件,c# 进度条使用
  • winform 进度条控件,c# 进度条使用,C#使用winform实现进度条效果
  • winform backgroundworker,c# isbackground
  • winform backgroundworker,c# isbackground,C# BackgroundWorker用法详解
  • lua与c#交互,lua c#
  • lua与c#交互,lua c#,ToLua框架下C#与Lua代码的互调操作
  • linq c#,linq原理 c#
  • linq c#,linq原理 c#,c#中LINQ的基本用法实例
  • java decimal保留两位小数,sql中decimal函数保留2位小数,C#中decimal保留2位有效小数的实现方法
  • 留言与评论(共有 条评论)
       
    验证码: