попытка чтобы вставить std :: pair в std :: set

Я обновляю некоторый старый код и обнаружил несколько случаев, когда один и тот же объект многократно приводится в действие каждый раз, когда необходимо вызвать одно из его свойств или методов. Пример:

if (recDate != null && recDate > ((System.Windows.Forms.DateTimePicker)ctrl).MinDate)
{
    ((System.Windows.Forms.DateTimePicker)ctrl).CustomFormat = "MM/dd/yyyy";
    ((System.Windows.Forms.DateTimePicker)ctrl).Value = recDate;
}
else
{
    (System.Windows.Forms.DateTimePicker)ctrl).CustomFormat = " ";
}
((System.Windows.Forms.DateTimePicker)ctrl).Format = DateTimePickerFormat.Custom;

Я склоняюсь к тому, чтобы исправить это чудовище, но, учитывая мое ограниченное время, я не хочу беспокоиться о чем-либо, что не влияет на функциональность или производительность.

Меня интересует, оптимизируются ли эти избыточные приведения Я попытался разобраться в этом сам, используя ildasm на упрощенном примере, но, не будучи знаком с IL, я только больше запутался.

ОБНОВЛЕНИЕ

Пока что консенсус таков, что а) нет, приведения не оптимизированы, но б) хотя в результате может произойти небольшое снижение производительности, это маловероятно, и в) мне все равно следует подумать об их исправлении. Я решил, что когда-нибудь их исправлю, если у меня будет время. Между тем, я не буду о них беспокоиться.

Спасибо всем!

45
задан Cody Gray 12 March 2011 в 07:07
поделиться