我目前正在重构代码以将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