这篇文章主要介绍了C# NullReferenceException解决案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
最近一直在写c#的时候一直遇到这个报错,看的我心烦。。。准备记下来以备后续只需。
参考博客:
https://segmentfault.com/a/1190000012609600
一般情况下,遇到这种错误是因为程序代码正在试图访问一个null的引用类型的实体而抛出异常。可能的原因。。
一、未实例化引用类型实体
比如声明以后,却不实例化
using System;
using System.Collections.Generic;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
List<string> str;
str.Add("lalla lalal");
}
}
}
改正错误:
using System;
using System.Collections.Generic;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
List<string> str = new List<string>();
str.Add("lalla lalal");
}
}
}
二、未初始化类实例
其实道理和一是一样的,比如:
using System;
using System.Collections.Generic;
namespace Demo
{
public class Ex
{
public string ex{get; set;}
}
public class Program
{
public static void Main()
{
Ex x;
string ot = x.ex;
}
}
}
修正以后:
using System;
using System.Collections.Generic;
namespace Demo
{
public class Ex
{
public string ex{get; set;}
}
public class Program
{
public static void Main()
{
Ex x = new Ex();
string ot = x.ex;
}
}
}
三、数组为null
比如:
using System;
using System.Collections.Generic;
namespace Demo
{
public class Program
{
public static void Main()
{
int [] numbers = null;
int n = numbers[0];
Console.WriteLine("hah");
Console.Write(n);
}
}
}
using System;
using System.Collections.Generic;
namespace Demo
{
public class Program
{
public static void Main()
{
long[][] array = new long[1][];
array[0][0]=3;
Console.WriteLine(array);
}
}
}
四、事件为null
这种我还没有见过。但是觉得也是常见类型,所以抄录下来。
public class Demo
{
public event EventHandler StateChanged;
protected virtual void OnStateChanged(EventArgs e)
{
StateChanged(this, e);
}
}
如果外部没有注册StateChanged事件,那么调用StateChanged(this,e)会抛出NullReferenceException(未将对象引用到实例)。
修复方法如下:
public class Demo
{
public event EventHandler StateChanged;
protected virtual void OnStateChanged(EventArgs e)
{
if(StateChanged != null)
{
StateChanged(this, e);
}
}
}
然后在Unity里面用的时候,最常见的就是没有这个GameObject,然后你调用了它。可以参照该博客:
https://www.cnblogs.com/springword/p/6498254.html
到此这篇关于C# NullReferenceException解决案例讲解的文章就介绍到这了,更多相关C# NullReferenceException内容请搜索得得之家以前的文章希望大家以后多多支持得得之家!
本文标题为:C# NullReferenceException解决案例讲解


基础教程推荐
- C#通过标签软件Bartender的ZPL命令打印条码 2023-05-16
- C#调用摄像头实现拍照功能的示例代码 2023-03-09
- 实例详解C#实现http不同方法的请求 2022-12-26
- C#获取指定目录下某种格式文件集并备份到指定文件夹 2023-05-30
- c# – USING块在网站与Windows窗体中的行为不同 2023-09-20
- C#中的Linq to JSON操作详解 2023-06-08
- Unity 如何获取鼠标停留位置下的物体 2023-04-10
- Unity shader实现高斯模糊效果 2023-01-16
- C# 解析XML和反序列化的示例 2023-04-14
- C#中 Json 序列化去掉null值的方法 2022-11-18