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