是否有可能將此if語句轉換爲單行語句?Tricky if語句
if (value != DBNull.Value)
{
dic.Add(columnName);
}
else if (!skipNullValues)
{
dic.Add(columnName);
}
是否有可能將此if語句轉換爲單行語句?Tricky if語句
if (value != DBNull.Value)
{
dic.Add(columnName);
}
else if (!skipNullValues)
{
dic.Add(columnName);
}
if (value != DBNull.Value || !skipNullValues) dic.Add(columnName);
使用邏輯OR:
if (value != DBNull.Value || !skipNullValues)
dic.Add(columnName);
我會繼續爲了清楚而以新行另外,雖然對於這樣一個簡單的聲明你可能沒事砸花括號。如果你試圖在將來添加更多的邏輯,但你需要小心,但顯然在if
的分支中。
如果您編輯以包括爲什麼使它成爲單行將幫助您得到更合適的答案。以下是你可以採取幾種不同的方法..
首先,在一個單一的線,你要求:
if ((value != DBNull.Value) || (value == DBNull.Value && !skipNullValues)) { dic.Add(columnName); }
或者你可能想看看,如果你需要的東西更緊湊使用三元的運營商。在三元運營商
var result = (istrue) ? (return valIfTrue) : (return valIfFalse);
更多信息: http://msdn.microsoft.com/en-us/library/ty67wk28%28v=vs.80%29.aspx
最有可能的(根據您的情況),你應該考慮建立一個類似的方法:
public void AddColumnToDic(object value, string columnName)
bool skipNullValues = false; // todo: read from configuration
if ((value != DBNull.Value) || (value == DBNull.Value && !skipNullValues))
{
dic.Add(columnName);
}
}
,並簡單地調用它的每您遇到的單元格值。
'if'子句可以被重寫爲:'!(value == DBNull.Value && skipNullValues)'。 – Oded 2012-03-22 10:51:28
@Oded:沒錯,沒有想到這一點。儘管如此,我會保留它(帶有有用的評論),因爲它更容易看到我所做的事情。 – 2012-03-22 11:03:11