在布尔值上调用ToString()总是会分配内存

时间:2017-05-18 14:07:36

标签: c# .net mono clr string-interning

请考虑以下代码:

private bool flag;

private void Test()
{
    Console.WriteLine(flag.ToString());
}

假设多次调用Test(),它每次都会分配内存,还是在C#(编译器或运行时)中有一些优化它的机制?

我听说过“String interning”,但我不确定它是针对此类场景执行的,还是仅在涉及字符串常量时执行。

1 个答案:

答案 0 :(得分:2)

不,您可以在sources中看到自己,ToString()方法返回readonly static字段的值。