Каков самый быстрый способ преобразования объекта в double? Я сейчас нахожусь в коде, который гласит:
var d = double.TryParse(o.ToString(), out d); // o is the Object...
Первые мысли заключались в том, чтобы переписать это как
var d = Convert.ToDouble(o);
но будет ли это на самом деле быстрее?
EDIT: В дополнение к запуску профиля (кстати, я настоятельно рекомендую JetBrains dotTrace для любого разработчика), я запустил Reflector, и это помогло мне прийти (более или менее соответствующая часть кода):
if (o is IConvertible)
{
d = ((IConvertible)o).ToDouble(null);
}
else
{
d = 0d;
}
Исходный код double.TryParse()
выполнен в 140 мс. Новый код выполняется в 34 мс. Я почти уверен, что это путь оптимизации, который я должен предпринять, но прежде чем я это сделаю, кто-нибудь видит что-то проблематичное с моим "оптимизированным" кодом? Заранее благодарим за ваши отзывы!