VB If 语句在 SQL 查询中

VB If statement in SQL query

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

我需要帮助的代码是:

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

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

感谢任何帮助!

不,那不是 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。在这两种情况下,如果您明确不想要 short-circuiting.

,则只应使用另一个