Поскольку подпись вашего метода такова:
public static T[] RemoveFirstElement<T>(this T[] array)
Я бы предположил, что это всегда будет возвращать массив new . Потому что вы всегда должны написать:
var myArray = SomeArray.RemoveFirstElement();
Вы не ожидаете, что myArray
теперь будет указывать точно на тот же объект, что и SomeArray
. Если вы хотите, чтобы он всегда работал с существующим массивом, ваша сигнатура метода будет:
public static void RemoveFirstElement<T>(this T[] array)
Так что пишите:
var myArray = SomeArray.RemoveFirstElement();
Может привести к ошибке во время компиляции. И было бы очевидно, что видя:
SomeArray.RemoveFirstElement();
Будет работать на месте.