为什么' args[0]. trim () == null '总是为假?
本文关键字:null trim args 为什么 | 更新日期: 2023-09-27 18:19:02
我有一个这样的方法:
public string StartCapture(string[] args)
{
if(args[0].Trim() == null || args[0].Trim() == string.Empty )
{
//do stuff
}
}
为什么我得到一个注意,args[0].Trim() == null
将永远是假的?
Trim()
不会返回null。您可能遇到的问题是,如果args[0]
为空,或args
本身为空,但Trim()
的结果永远不会为空,因此与空的比较将始终为假。
修剪方法
如果当前字符串等于Empty,或者当前实例中的所有字符都是空白字符,则该方法返回Empty。
您可能只想检查
if (args == null || args.Length == 0 || string.IsNullOrWhiteSpace(args[0]))
{
// null or empty array or empty first element
}
如果args[0]
是null
,那么当您尝试调用 Trim()
方法时,您将获得NullReferenceException
。不存在null
值可用于==
比较的执行路径。
你可能想要:
if(args[0] == null || args[0].Trim() == string.Empty )
{
但更可能想要的是:
if(String.IsNullOrWhitespace(args[0]))
{
字符串。IsNullOrWhitespace是在。net 4中引入的
Trim()
被定义为总是返回一个值,因此,它永远不能是null
因为null不是对象,而字符串。Empty(即")是一个长度为0个字符的字符串对象。