【问题标题】:Difference between "" (Empty String) and isNot Nothing?“”(空字符串)和 isNot Nothing 之间的区别?
【发布时间】:2020-06-14 09:51:19
【问题描述】:

我正在处理一个必须验证参数是否为空的条件。让我们假设参数是Email。我必须检查向内参数 Email 是否为空。我可以通过多种方式做到这一点,但我不确定要继续使用哪一种。

我正在考虑从以下语句中检查:

1.Email = "" 检查电子邮件是否为空字符串。 2.Email isNot Nothing

我想知道这两种功能的区别。如果有更多与验证空字符串相关的函数或参数,你也可以写。

谢谢。

【问题讨论】:

标签: c# if-statement uipath uipath-studio


【解决方案1】:

String 是一个reference type,这意味着它可以有一个空引用

例如

string myString = null;

也可以是empty,也就是说有一个reference对它,而且它的字符长度为0

例如

string myString = "";
// or
string myString = string.Empty;

为了完整起见,它还可以有空格

例如

string myString = "   ";

你可以像这样检查null

if(myString == null)

你可以检查 empty

if(myString == "")

// or

if(myString == string.Empty)

您可以同时检查两者,而不是 nullempty

if(myString != null && myString != string.Empty)

您可以使用Null conditional OperatorLength 来检查两者都不是null 并且不为空

if(myString?.Length > 0)

或者你可以使用内置的字符串方法,让它更容易一点

String.IsNullOrEmpty(String) Method

表示指定的字符串是null还是空字符串 ("")。

if(string.IsNullOrEmpty(myString))

String.IsNullOrWhiteSpace(String) Method

指示指定的字符串是 null、空还是仅包含 空白字符。

if(string.IsNullOrWhiteSpace(myString))

注意:值得注意的是,IsNullOrWhiteSpace 在检查用户输入时通常更加稳健

【讨论】:

  • 另请注意,微软建议使用IsNullOrWhiteSpaceIsNullOrEmpty 以获得卓越的性能。
  • @bansi 谢谢你,你有任何来源/链接,所以我可以将它添加到答案中吗?
  • 如果您的字符串不为空,myString?.Length >= 0 将为真。当它为空时使其为假,请稍作修复myString?.Length > 0
【解决方案2】:

你不应该对引用类型变量使用 IsNot nothing。相反,当您需要验证电子邮件时,请将 string.IsNullOrEmpty(Email) 与 String.IsNullOrWhiteSpace(Email) 一起使用。

【讨论】:

    【解决方案3】:

    其实在C#string.Empty中就相当于""。见String.Empty

    检查EmptyNull 字符串的最佳方法是:

    string.IsNullOrEmpty(Email) 或者您可以使用string.IsNullOrWhiteSpace(Email) 额外检查空格。

    if(!string.IsNullOrEmpty(Email))
    {
        // Good to proceed....
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-15
      • 1970-01-01
      • 2017-01-29
      • 2013-05-26
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-25
      相关资源
      最近更新 更多