オブジェクトとキャストするオブジェクトの型を取得する型変換の汎用メソッドを作成しようとしています。
をConvert.ChangeType()
使えばやりたいことはできますが、実行に時間がかかりすぎます。私が望むようなジェネリッククラスを作成するための最良の方法は何ですか?
私の古いコードは次のようになります。
public static ConvertTo<T>(object data) where T : struct // yes the worst variable name!
{
// do some controls...
return Convert.ChangeType(data, typeof(T));
}
編集:明確にするために...
例の場合; クエリを実行したところ、DataRow が返されました。そして、longにキャストしたい10進数として入力した列があります。このメソッドを呼び出すと、decimal を long にキャストするのに非常に時間がかかります。
また、このメソッドの T 型は値型のみである可能性があります。つまり、「T : 構造体」