私が持っているアプリケーションでは、値を動的にロードされる型に変換するために、Convert.ChangeType
を頻繁に呼び出しています。Convert.ChangeTypeの高速版
しかし、ANTSを使用してプロファイリングしたところ、このConvert.ChangeType
は(かなり頻繁に呼び出されるため)かなりの時間がかかるようです。誰かがこれを行うより速い選択肢を持っていますか?
この時点では、ターゲットを含むタイプオブジェクトと、その値を含むstring
があります。
以下は問題のコードです。私は、型の切り替えステートメントを実行することを検討していました(型の限られたコレクションなので)。そして、解析メソッドを呼び出すことも考えましたが、高速化が必要かどうかはわかりません。
if(attributeRow["Value"]!=DBNull.Value)
sample[attr] = attr.AttributeType == typeof(Guid)
? new Guid(attributeRow["Value"].ToString())
: (IComparable)Convert.ChangeType(attributeRow["Value"],attr.AttributeType);
私たちはいくつかの点を検討するつもりですが、この投稿は可能な限り最良の方法でやっていることを恐れているので、私はこの回答を受け入れています。 – Erich
リンクで提供されるChangeTypeは完全に機能します!ありがとう! – Larry