Если я запускаю
string myString = "*.txt";
Print("sizeof(char): " + sizeof(char) + " bytes");
Print("myString.Length * sizeof(char): " + (myString.Length * sizeof(char)) + " bytes");
Будет напечатано
sizeof (char): 2 байта
myString.Length * sizeof (char): 10байт
Но , если я запускаю код из первого ответа на этот вопрос :
myString = "*.txt"
long size = 0;
using (Stream s = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(s, myString);
size = s.Length;
}
Print("myString Serialized Size: " + size + " bytes");
Я получаю
Серийный размер myString: 29 байт
Что из этого является более точным представлением того, сколько места занимает моя строка в памяти?