Questions tagged «nullreferenceexception»

28
什么是NullReferenceException,如何解决?
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 堆栈溢出语法:否NullReferenceException, 请参见堆栈溢出? 我有一些代码,执行时会抛出NullReferenceException,说: 你调用的对象是空的。 这是什么意思,我该怎么做才能解决此错误?

16
在C#中检查对象是否为空
如果对象为null,我想防止对其进行进一步处理。 在以下代码中,我通过以下任一方法检查对象是否为空: if (!data.Equals(null)) 和 if (data != null) 不过,我收到NullReferenceException的dataList.Add(data)。如果对象为null,则它甚至都不应输入if -statement! 因此,我问这是否是检查对象是否为null的正确方法: public List<Object> dataList; public bool AddData(ref Object data) bool success = false; try { // I've also used "if (data != null)" which hasn't worked either if (!data.Equals(null)) { //NullReferenceException occurs here ... dataList.Add(data); success = doOtherStuff(data); } …

2
为什么要找到类型的初始化程序会引发NullReferenceException?
这让我难过。我正在尝试优化Noda Time的一些测试,其中我们进行了一些类型初始化程序检查。我以为在将所有内容加载到new之前,先要确定类型是否具有类型初始值设定项(静态构造函数或带有初始值设定项的静态变量)AppDomain。令我惊讶的是,NullReferenceException尽管我的代码中没有空值,但对此进行了一次小小的测试。仅当编译时没有调试信息时,它才会引发异常。 这是一个简短但完整的程序来演示该问题: using System; class Test { static Test() {} static void Main() { var cctor = typeof(Test).TypeInitializer; Console.WriteLine("Got initializer? {0}", cctor != null); } } 以及编译和输出记录: c:\Users\Jon\Test>csc Test.cs Microsoft (R) Visual C# Compiler version 4.0.30319.17626 for Microsoft (R) .NET Framework 4.5 Copyright (C) Microsoft Corporation. All rights reserved. …

19
C#优雅的方法来检查属性的属性是否为null
在C#中,假设在此示例中要从PropertyC中提取一个值,并且ObjectA,PropertyA和PropertyB都可以为null。 ObjectA.PropertyA.PropertyB.PropertyC 如何以最少的代码安全地获取PropertyC? 现在,我将检查: if(ObjectA != null && ObjectA.PropertyA !=null && ObjectA.PropertyA.PropertyB != null) { // safely pull off the value int value = objectA.PropertyA.PropertyB.PropertyC; } 最好做类似这样的事情(伪代码)。 int value = ObjectA.PropertyA.PropertyB ? ObjectA.PropertyA.PropertyB : defaultVal; 可能甚至会因为使用空伙伴运算符而崩溃。 编辑最初,我说我的第二个示例就像js,但是我将其更改为psuedo代码,因为正确地指出了它在js中不起作用。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.