Я хотел попытаться выделить массив размером 4 миллиарда байт, и вот мой код C#:
long size = 4 * 1000;
size *= 1000;
size *= 1000;
byte[] array = new byte[size];
этот код завершается ошибкой с System.OverflowException
в строке, содержащей новый
. Хорошо, получается, что Length
возвращает int
, поэтому длина массива также ограничена тем, что может хранить int
.
Тогда почему нет ошибки времени компиляции и long
разрешено использовать в качестве количества элементов массива при распределении?