1
我有以下的擴展方法鑄造/類型的轉化效果
public static T Field<T>(this DataRow row, string columnName)
{
return (T)Convert.ChangeType(row[columnName], typeof(T));
}
它的工作原理,但我試圖加快速度。有沒有辦法加快速度?用case語句,然後鍵入特定的轉換?我已經嘗試了一些使用int.Parse的東西,但即使我知道我想要返回一個int,但我必須使用ChangeType才能編譯它。
return (T)Convert.ChangeType(intVal, typeof(T));
@Luke,普通投射不總是工作,而Convert.ChangeType似乎總是返回正確的值,無論我扔在它的類型。 – CaffGeek 2010-01-21 17:30:06
@Chad:你可以舉一些鑄造不行的例子,但是'ChangeType'呢?例如,什麼是列的基礎類型/值,以及您嘗試將其轉換爲哪種類型? – LukeH 2010-01-21 17:32:38
底層類型不盡相同,但它們應該總是可以轉換爲以下之一:string,int,bool,DateTime,byte,float,decimal。 – CaffGeek 2010-01-21 17:43:05