Dlaczego dozwolone jest „długie” jako długość tablicy w C #?
Chciałem spróbować przydzielić 4 miliardy bajtów i to jest mój kod C #:
long size = 4 * 1000;
size *= 1000;
size *= 1000;
byte[] array = new byte[size];
ten kod zawodziSystem.OverflowException
na linii zawierającejnew
. Ok, okazuje sięLength
zwracaint
, więc długość tablicy jest również ograniczona do tego, coint
sklep z puszkami.
Dlaczego więc nie ma błędu kompilacji ilong
może być używany jako liczba elementów tablicy przy przydzielaniu?