Насколько я знаю, .NET Framework не был скомпилирован таким образом, чтобы создавать зацепки для некоторого недоступного в противном случае аппаратного ускорения или чего-то подобного, поэтому для простых вещей, таких как KeyValuePair
и Tuple
, вам Вы, вероятно, в безопасности, катаясь самостоятельно.
Однако есть ряд других преимуществ использования стандартных рамочных классов, и я не решался бы написать свой без веской причины.
- Они уже написаны, так зачем выкладываться?
- Microsoft провела свой код через довольно строгий процесс проверки, поэтому есть большая вероятность, что их код будет более правильным и более эффективным, чем ваш.
- Другие разработчики, которым нужно взглянуть на ваш код, будут точно знать, чего ожидать, когда увидят, что используются стандартные классы фреймворка, в то время как ваши домашние вещи могут на некоторое время заставить их почесать голову.
Обновление
@ Горди также отмечает, что стандартные каркасные классы используются всеми и их собаками, поэтому прирост производительности будет незначительным просто из-за того, что:
- класс, скорее всего, не нужно будет статически создавать или создавать точно в срок для вашего кода,
- инструкции класса, скорее всего, уже загружены в кеш, так как они, вероятно, недавно использовались другими частями кода. Используя их, вам, скорее всего, не понадобится загружать код в кеш в первую очередь, и вы с меньшей вероятностью выбрасываете другой код из кеша, который, скорее всего, скоро снова будет использоваться.