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

Does a call to ToString() on a boolean always allocate memory

考虑以下代码:

private bool flag;

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

假设 Test() 被多次调用,它是否每次都分配内存,或者 C#(编译器或运行时)中是否有某种机制可以对此进行优化?

我听说过“String interning”,但我不确定它是针对这种情况执行的,还是仅在涉及字符串常量时才执行。

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