【问题标题】:VB If statement in LINQ queryLINQ 查询中的 VB If 语句
【发布时间】:2022-06-20 17:04:44
【问题描述】:

我正在将一个旧的定时脚本从 VB 转换为 C#,我需要帮助来理解 If 语句的用途。

我需要帮助的代码是:

... And If(cp.JobTitle, String.Empty) = String.Empty And ...

这是 SQL 查询的一部分,数据库中的 cp.JobTitle 是可为空的字符串字段。

感谢任何帮助!

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    不,这不是 SQL 查询的一部分。也许它是 LINQ 查询的一部分或一些构造 SQL 查询的代码,但那里与 SQL 无关。

    无论如何,该 VB 代码正在使用带有两个操作数的 If 运算符。相当于这个VB:

    If(cp.JobTitle, String.Empty) = String.Empty
    

    这是 C#:

    (cp.JobTitle ?? string.Empty) == string.Empty
    

    意思是使用cp.JobTitle,除非它是Nothing,在这种情况下使用String.Empty。编写功能等效的 VB 的更好方法是:

    String.IsNullOrEmpty(cp.JobTitle)
    

    我希望与此等效的 C# 是显而易见的。

    顺便说一句,VB 代码确实应该使用AndAlso 而不是And。如果您在 C# 中使用 && 而不是 &,几乎每个人都会使用,那么您应该在 VB 中使用 AndAlso 而不是 And。在这两种情况下,仅当您明确不想短路时才应使用另一种。

    【讨论】:

    • @Jonh 谢谢!是的,我应该说 LINQ 并感谢您的回复,现在事情变得更加清晰了。我在 C# 中使用 &&。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 2017-03-13
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    相关资源
    最近更新 更多