我試圖單行如果語句如下,我得到的錯誤justifably.How我應該這樣做嗎?單行如果爲null或int返回
int? n;
n = (reader[0] == null)? null : Convert.ToInt32(reader[0]);
我試圖單行如果語句如下,我得到的錯誤justifably.How我應該這樣做嗎?單行如果爲null或int返回
int? n;
n = (reader[0] == null)? null : Convert.ToInt32(reader[0]);
顯式轉換爲int?
,如:
n = (reader[0] == null)? null :(int?) Convert.ToInt32(reader[0]);
或者:
n = (reader[0] == null) ? (int?) null : Convert.ToInt32(reader[0]);
之間的差異BTW你也可以施放'null' –
@SergeyBerezovskiy,燁。那是真實的。 – Habib
你真的需要一個if語句?
n = (int?) reader[0];
Habib的回答是正確的。不過,我有時會發現以下約定更易於閱讀:
int? n = null;
if (reader[0] != null)
n = Convert.ToInt32(reader[0]);
我儘量試圖做太多的事情在一行代碼。
它的維護性較差,可讀性較差,無論如何編譯到相同的MSIL。
這樣的事情是更加易讀:
int? number = null;
if (reader[0] != null)
{
number = Convert.ToInt32(reader[0]);
}
謹防空和DBNull的 –