簡體   English   中英

如何縮短If ... Else ...語句以檢查Date的狀態?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM