Вам не следует беспокоиться о воздействии конкретных функций языка, если у вас нет конкретных доказательств (измерений), которые фактически вызывают проблему.
Вашими первыми проблемами должны быть правильность кода и его ремонтопригодность.
Как общее замечание, однако, на C# часто можно избежать ненужного литья, просто применяя хорошие методы программирования OO и используя дженерики (особенно коллекции) соответствующим образом. В тех случаях, когда вам нужно выполнить кастинг, вряд ли это будет узким местом производительности, если вы не делаете это в трудном цикле или типах, которые могут вызвать недопустимое исключение литых.
Большинство проблем с производительностью в реальном мире возникают из-за выбора алгоритма или отсутствия понимания самой платформы, а не от конкретных особенностей языка.
Может быть, вы могли бы добавить в конце немного о __the накладных расходов на тип casting__. Приятно иметь совет, но он не отвечает на вопрос. –
Хороший ответ на другой вопрос. – Acidic