我正在將一個舊的定時腳本從 VB 轉換為 C#,我需要幫助來理解If陳述句的目的是什么。
我需要幫助的代碼是:
... And If(cp.JobTitle, String.Empty) = String.Empty And ...
這是 SQL 查詢的一部分,并且cp.JobTitle在資料庫中是可為空的字串欄位。
任何幫助表示贊賞!
uj5u.com熱心網友回復:
不,這不是 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#&中使用AndAlso而不是And. 在這兩種情況下,僅當您明確不希望短路時才應使用另一種。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/459296.html
標籤:VB.net
上一篇:在SQL中組合兩個查詢
下一篇:如何找出資料表中哪些行更改了值
