Por que é "longo" sendo permitido como comprimento de matriz em c #?
Eu queria tentar alocar uma matriz de 4 bilhões de bytes e este é o meu código c #:
long size = 4 * 1000;
size *= 1000;
size *= 1000;
byte[] array = new byte[size];
este código falha comSystem.OverflowException
na linha que contémnew
. Ok, acabaLength
devolveint
, então o comprimento da matriz também é limitado ao queint
pode armazenar.
Então, por que não há erro de compilação elong
tem permissão para ser usado como o número de elementos da matriz na alocação?