c# StringBuilder.ToString() 方法会重新分配内存吗

图片说明

    如图所示,第一行代码为变量stringBuilder分配了10个字符的内存,并赋值字符串“hello”,占用5个字符。
    第二行代码ConsoleWriteLine(stringBuilder.ToString());会将值转换为string类型并打印到控制台,那么第二行的这个操作在转换为string时使用的内存是重新分配的5个字符的内存还是使用的stringBuilder变量所剩余的5个字符的内存?

会重新创建一个String对象。而不能直接使用StringBuilder

不是同一种对象类型,因此内存布局肯定不同