我正在更新一些旧代码,并且发现了几个实例,每次需要调用其中一个属性或方法时,都会重复转换相同的对象.例:
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;
Run Code Online (Sandbox Code Playgroud)
我倾向于修复这种怪异,但考虑到我有限的时间,我不想打扰任何不影响功能或性能的东西.
所以我想知道的是,这些冗余的演员是否被编译器优化了?我试着用一个简单的例子使用ildasm自己搞清楚,但不熟悉IL我只是更加困惑.
UPDATE
到目前为止,共识似乎是a)不,演员表没有优化,但b)虽然可能会有一些小的性能影响因此,它不太可能显着,并且c)我应该考虑修复它们无论如何.如果我有时间的话,我有一天会解决这些问题.同时,我不会担心他们.
感谢大家!