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