Сначала:
Код: Выделить всё
object[] array = new object[1];
for (int i = 0; i < 100000; i++)
{
ICollection col = (ICollection)array;
col.Contains(null);
}
Код: Выделить всё
object[] array = new object[1];
for (int i = 0; i < 100000; i++)
{
ICollection col = array;
col.Contains(null);
}
После сравнения IL из обоих фрагментов я заметил, что оба метода идентичны. , за исключением инструкции castclass IL в первом фрагменте кода.
Удивленный этим, я теперь задаюсь вопросом, почему компилятор C# здесь не является «умным». Все не так просто, как кажется, так почему же компилятор C# здесь такой наивный?
Подробнее здесь: https://stackoverflow.com/questions/221 ... sary-casts
Мобильная версия