[英]How would I shorten this If… Else… statement to check the state of a Date?
我是C#程序員,但涉足VB.Net,因為團隊中的其他所有人都在使用它。 為了職業發展的利益,我想縮小以下If ... Else ...語句。
If cmd.Parameters("@whenUpdated").Equals(DBNull.Value) Then
item.WhenUpdated = Nothing
Else
item.WhenUpdated = cmd.Parameters("@whenUpdated").Value
End If
我很欣賞示例,但我無法在特定情況下使用它。
干杯,伊恩。
使用If作為函數而不是語句:
item.WhenUpdated = If(cmd.Parameters("@whenUpdated").Equals(DBNull.Value), cmd.Parameters("@whenUpdated").Value, Nothing)
與C#中的三元運算符類似,VB具有IIF函數 。
item.WhenUpdated = IIF(cmd.Parameters("@whenUpdated").Equals(DBNull.Value),
cmd.Parameters("@whenUpdated").Value,
Nothing)
如果第一個參數(布爾表達式)的計算結果為true,則從函數返回第二個參數。 如果第一個參數為false,則返回第三個參數。
item.WhenUpdated = Nothing
If cmd.Parameters("@whenUpdated").Equals(DBNull.Value) Then
item.WhenUpdated = cmd.Parameters("@whenUpdated").Value
End If
只有1行,但仍然更短。
IF
函數絕對是最短的,但不是最易讀的。
少一行
item.WhenUpdated = Nothing
If cmd.Parameters("@whenUpdated").Equals(DBNull.Value) Then
item.WhenUpdated = cmd.Parameters("@whenUpdated").Value
End If
如果需要短路行為,請使用運算符If(...)。
如果您不想發生短路行為,請使用函數IIf(...)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.