Reza1992 Ответов: 2

Ссылочные типы данных максимальный диапазон для каждой переменной


Привет всем прежде всего мне очень жаль, потому что мой первый язык не английский.

Я хочу знать максимальный диапазон любых ссылочных типов в c#

Например,я знаю, что максимальный диапазон байтовых типов данных составляет от 0 до 255, но я точно не знаю максимального диапазона ссылочных типов, таких как строка, объект и т. д


Если я правильно понял, любой диапазон ссылочных типов составляет 2 гигабайта (если это правда, просто скажите истинный без всякого чего-то лишнего) на 32-битной и 64-битной платформах

Большое спасибо

Что я уже пробовал:

Я пытаюсь задать вопрос в MSDN, но у меня не получилось точно определить диапазон ссылочных типов

2 Ответов

Рейтинг:
2

OriginalGriff

Вы, кажется, не понимаете, что такое ссылочный тип: у него нет "максимального диапазона" в том смысле, в котором вы, кажется, думаете.

Ссылочный тип ограничен кучей, а не типом: строка действительно имеет "диапазон", это неизменяемое значение с теоретической максимальной длиной 2 147 483 647 символов в теории (потому что это Length собственность-это int ценность, и это самая большая ценность, которую он может содержать. Аналогично Length свойство массива также является int - но .До .NET 4.5 максимальный размер распределения NET составлял 2 ГБ, поэтому ни один объект (а массив-это один объект) не может превышать его. После 4.5 можно получить объекты размером 4 ГБ в 64-битных системах, но даже это не позволит вам в большинстве случаев получить массив, содержащий значения размером 4G, потому что очень немногие типы значений меньше 8 байт, а массив ссылок всегда будет равен 8 байтам * количество элементов в массиве.

"Спектр" в object является неопределенным, потому что все является object даже если это тип значения - так что object не имеет никакого фиксированного размера вообще.