你调用的对象是空的.

Mik*_*ike 76 c#

我运行程序时不断收到此错误.

你调用的对象是空的.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例.

Source Error:

Line with error:

Line 156:        if (strSearch == "" || strSearch.Trim().Length == 0)
Run Code Online (Sandbox Code Playgroud)

它的正确写法是什么?

Mat*_*ell 102

.NET 4.0中的正确方法是:

if (String.IsNullOrWhiteSpace(strSearch))
Run Code Online (Sandbox Code Playgroud)

String.IsNullOrWhiteSpace上面使用的方法相当于:

if (strSearch == null || strSearch == String.Empty || strSearch.Trim().Length == 0) 
// String.Empty is the same as ""
Run Code Online (Sandbox Code Playgroud)

IsNullOrWhiteSpace方法的参考

http://msdn.microsoft.com/en-us/library/system.string.isnullorwhitespace.aspx

指示指定的字符串是否为空,空或仅由空格字符组成.

在早期版本中,您可以执行以下操作:

if (String.IsNullOrEmpty(strSearch) || strSearch.Trim().Length == 0)
Run Code Online (Sandbox Code Playgroud)

String.IsNullOrEmpty上面使用的方法相当于:

if (strSearch == null || strSearch == String.Empty)
Run Code Online (Sandbox Code Playgroud)

这意味着您仍然需要.Trim().Length == 0根据示例检查"IsWhiteSpace"案例.

IsNullOrEmpty方法的参考

http://msdn.microsoft.com/en-us/library/system.string.isnullorempty.aspx

指示指定的字符串是Nothing还是Empty字符串.

说明:

您需要确保strSearch(或任何变量)null在您使用点字符(.)取消引用之前 - 即在您执行之前strSearch.SomeMethod()strSearch.SomeProperty需要检查它之前strSearch != null.

在您的示例中,您希望确保您的字符串具有值,这意味着您要确保字符串:

  • 不是空的
  • 不是空字符串(String.Empty/ "")
  • 不仅仅是空白

在上面的例子中,你必须把"它是否为空?" 首先是case,所以当字符串为时,它不会继续检查其他情况(和错误)null.


Rit*_*ton 23

所有版本的.Net:

if (String.IsNullOrEmpty(strSearch) || strSearch.Trim().Length == 0)
Run Code Online (Sandbox Code Playgroud)

.Net 4.0或更高版本:

if (String.IsNullOrWhitespace(strSearch))
Run Code Online (Sandbox Code Playgroud)


Cam*_*ies 5

在这种情况下,strSearch可能为null(不仅仅是空的).

尝试使用

String.IsNullOrEmpty(strSearch)

如果你只是想确定字符串是否没有任何内容.


小智 5

我知道这是大约一年前发布的,但这是供用户参考的.

我遇到过类似的问题.在我的情况下(我会尽量简短,如果你想了解更多细节,请告诉我),我试图检查字符串是否为空(字符串是电子邮件的主题).无论我做什么,它总是返回相同的错误消息.我知道我做得对,但它仍然不断抛出相同的错误信息.然后我突然意识到,我正在检查电子邮件(实例/对象)的主题(字符串),如果电子邮件(实例)在第一个位置已经是空的话.我怎么能检查电子邮件的主题,如果电子邮件已经是空...我检查电子邮件是否为空,它工作正常.

在检查主题(字符串)时,我使用了IsNullorWhiteSpace(),IsNullOrEmpty()方法.

if (email == null)
{     
     break;    
}
else
{    
     // your code here    
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

889020 次

最近记录:

11 年,6 月 前