【发布时间】:2022-06-20 17:04:44
【问题描述】:
我正在将一个旧的定时脚本从 VB 转换为 C#,我需要帮助来理解 If 语句的用途。
我需要帮助的代码是:
... And If(cp.JobTitle, String.Empty) = String.Empty And ...
这是 SQL 查询的一部分,数据库中的 cp.JobTitle 是可为空的字符串字段。
感谢任何帮助!
【问题讨论】:
标签: vb.net
我正在将一个旧的定时脚本从 VB 转换为 C#,我需要帮助来理解 If 语句的用途。
我需要帮助的代码是:
... And If(cp.JobTitle, String.Empty) = String.Empty And ...
这是 SQL 查询的一部分,数据库中的 cp.JobTitle 是可为空的字符串字段。
感谢任何帮助!
【问题讨论】:
标签: vb.net
不,这不是 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。在这两种情况下,仅当您明确不想短路时才应使用另一种。
【讨论】: