我目前正在重構代碼以將Convert.To's替換爲TryParse。使用TryParse設置對象屬性值
我遇到了以下代碼創建和分配屬性的對象。
List<Person> list = new List<Person>();
foreach (DataRow row in dt.Rows)
{
var p = new Person{ RecordID = Convert.ToInt32(row["ContactID"]) };
list.Add(p);
}
我想出的更換:
var p = new Person { RecordID = Int32.TryParse(row["ContactID"].ToString(), out RecordID) ? RecordID : RecordID };
任何想法,意見,替代我做了什麼?
不完全可讀 - 但如果它的工作...... – DilbertDave 2008-11-12 14:21:24
我同意迪爾伯特。我認爲單線版很難閱讀,並且嘗試編輯或者在調試中逐步完成會很痛苦。 TryParse確實聽起來像是一種改進。 – DOK 2008-11-12 14:26:54
由於ContactID是數據庫中的主鍵,轉換爲Int32將始終成功。 TryParse的使用會誤導代碼的維護者,因爲它意味着轉換有時會失敗,但情況並非如此。我會堅持Convert.ToInt32。 – 2008-11-12 15:31:42