NullReferenceException

NullReferenceException

This question already has answers here:
What is a NullReferenceException, and how do I fix it?
                                
                                    (29个答案)
                                
                        
                                3年前关闭。
            
                    
我有一个程序,在其中我不断收到NullReferenceException错误。这是导致错误的代码:

string description = "";
if (string.IsNullOrEmpty(eventItem.Description.ToString()))
{
     description = "No description available.";
}
else
{
     description = eventItem.Description.ToString();
}


我浏览了这篇文章(What is a NullReferenceException and how do I fix it?),并尝试了几种解决方案(恐怕我对这些解决方案的理解还不够多,无法尝试使用它们),但我只是想不通为什么正在发生。据我了解,发生此错误是因为字符串实际上为空。

我的Google日历上有一些事件没有输入描述,因此描述为null,但是我所拥有的代码不应该检查并处理吗?还是在我调用IsNullOrEmpty方法时eventItem.Description.ToString()不能为null的问题?我也尝试将if语句更改为此:

if (eventItem.Description.ToString() == null)


...但是我仍然收到NRE错误。我已经尝试过用多种方法重写代码,但是没有任何效果。我在尽头!

最佳答案

您的eventItem本身可能为空。顺其自然

 if ( eventItem!= null && eventItem.Description != null && eventItem.Description.ToString() == null)


在DStanley在评论中指出.ToString()== null比较将是不必要的之后进行更新。

if ( eventItem!= null && eventItem.Description != null)
{
}


只是为了帮助您更好地理解... NullReferenceException基本上意味着您正在尝试使用某些对象而不实例化它。防止这种情况的最简单方法之一是,如果不确定对象是否不为null,则添加null检查。当我说添加一个空检查时,它只是意味着在访问对象的任何属性之前,在if块中与null进行比较。

if( objectName != null)
{
//then do something on the object

}

09-30 22:43
查看更多