Если я использую не общие коллекции, функции и т. Д., Тогда переданные типы значений будут помещаться в коробку из-за литья в Object
(что плохо для производительности). Но после включения дженериков в C# 2.0 было устранено большинство ситуаций прохождения типа значений, как Object
.Использование объекта вместо генериков
Есть ли какие-либо ситуации в компетентные программисты, где невозможно выполнить что-то с дженериками и все еще нужно использовать литье до Object
? Если да, то можете ли вы показать пример? Благодарю.
Стоит отметить, что бокс по-прежнему встречается для типов значений во многих сценариях, даже с дженериками. Эффективность, которую вы выбрали, в большинстве случаев настолько ничтожно мала, что это действительно не вызывает беспокойства. –
@Dan Puzey, в 1 строке кода - да. Но поместите эту строку в цикл, который выполняется несколько тысяч раз, и вы увидите, как его пренебрежимо малый ... –