我正在尋找在C#中表達了以下測試的更簡潔的方式,其中x是一個可空INT試圖儘可能地與C#
英語爲簡潔: 如果x的值和Y> X然後做一些
C#,使更簡潔:
if(x.HasValue && y > x)
類似地,如果我想默認爲null的布爾值(X)爲假我可能會寫:
if(x ?? false)
{
//x is true
}
else
{
//x is either null or false
}
代替:
if(x.HasValue() && x == true)
非常感謝
提升的比較運算符被定義爲返回false,如果任一操作數爲null。您不需要檢查操作數是否具有值。有關詳細信息,請參閱C#4規範的第7.3.7節。 – 2012-01-10 23:24:29
「if(x.HasValue && y> x)」可能與其應該一樣簡潔。在某些情況下,更簡化是不切實際的,並且在某些情況下會使代碼不易讀。 – 2012-01-10 23:24:50