Нет, строка представляет собой законченный объект с заголовком объекта (содержащим ссылку на тип, блок синхронизации и т. Д.), Длиной и любыми необходимыми символами ... который будет одним нулевым символом (два байта) и соответствующимдополняет до 4 или 8 байтов в целом.
Обратите внимание, что хотя строки в .NET имеют поле длины, они по-прежнему заканчиваются нулем для взаимодействия.Нулевой символ не включен в длину.
Конечно, string.Empty
будет ссылаться только на один объект, независимо от того, сколько раз вы его используете ... но reference будет 4 или 8 байтов, поэтому, если у вас есть:
string a = string.Empty;
string b = string.Empty;
string c = string.Empty;
, это будет три ссылки (12 или 24 байта), все ссылающиеся на один и тот же объект (который, вероятно, составляет около 20 илиРазмером 24 байта).