使用TryParse设置对象属性值

God*_*667 4 c# refactoring exception tryparse

我目前正在重构代码以将Convert.To替换为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);
}
Run Code Online (Sandbox Code Playgroud)

我作为替代品提出的是:

var p = new Person { RecordID = Int32.TryParse(row["ContactID"].ToString(), out RecordID) ? RecordID : RecordID };
Run Code Online (Sandbox Code Playgroud)

有什么想法,意见,替代我做过的事情?

yfe*_*lum 6

写一个扩展方法.

public static Int32? ParseInt32(this string str) {
    Int32 k;
    if(Int32.TryParse(str, out k))
        return k;
    return null;
}
Run Code Online (Sandbox Code Playgroud)