【问题标题】:What is the purpose this code "SomeString" & ""=""这段代码“SomeString”和“”=“”的目的是什么
【发布时间】:2021-04-23 02:02:55
【问题描述】:

我在一个 vb.net 应用程序上遇到了这个代码“SomeString”和“”=""。

我可以知道这上面的编码逻辑是什么吗?似乎是评估“SomeString”是否为空,返回真或假。

【问题讨论】:

  • 查看 cmets here(可以替换为 If String.IsNullOrEmpty(...)
  • 你只是在调试器中看到了吗?我认为调试器有自己的语法

标签: vb.net


【解决方案1】:

您是否注意到= 字符周围的多个引号?您的表达式是字符串比较。它首先将"SomeString" 与空字符串(前两个双引号)连接起来。结果是"SomeString"。然后将此结果与空字符串(最后两个双引号)进行比较。 = 字符用作equality comparison operator。表达式的结果是False,因为"SomeString" 不等于""

为了更好的理解,你可以重写你的代码如下:

("SomeString" & "") = ""

是的,正如在一条评论中已经提到的,您的代码的最初目的可能是测试一个字符串是空的还是空的。我假设在您的实际情况下,使用了一些变量someString 而不是文字字符串"SomeString"。表达式的第一部分:

someString & ""

将确保结果是原始的someString 或如果someStringNothing (null) 则为空字符串。这与一个空字符串进行比较。正确的做法是替换原来的表达式

someString & "" = ""

以下内容:

String.IsNullOrEmpty(someString)

【讨论】:

    【解决方案2】:

    VB.NET中字符串之间的&是字符串连接。

    【讨论】:

    • 是的。我理解 & 是连接。但我不明白为什么 "SomeString" & ""="" 返回 false。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    相关资源
    最近更新 更多