铸造/类型转换性能

时间:2010-01-21 17:14:31

标签: c# performance casting

我有以下扩展方法

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));

1 个答案:

答案 0 :(得分:4)

你真的需要进行转换,还是只是在施法?

如果你只需要一个演员表,那么一个简单的return (T)row[columnName];就可以了。

(顺便说一下,使用Convert.ChangeType真的会导致性能问题吗?这对我来说听起来像是不必要的微优化。话虽如此,我可能更喜欢普通的强制转换,以便于阅读,假设它符合你的要求。)