Как устроена внутренняя реализация Array.Copy и Array.CopyTo

Народ плис, я новичок, но нужна срочная консультация:

Кто знает как устроена внутренняя реализация Array.Copy и Array.CopyTo?

Есть способ скопировать участок одномерного Массива (не начало и не конец) в участок уже существующего другого массива (Тоже не начало и не конец)?

Насколько быстрее работает Cоpy и CopyTo по сравнению с поэлементным копированием в цикле:

A[i]=B[i+k0]?

Как правильно получить ссылку на некоторый элемент массива, так что бы она воспринималась как массив, типа как в С++?