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?

questionAnswers(5)

yourAnswerToTheQuestion