在局部变量 C# 上声明字符串的局部常量有什么好处

Is there any benefit on declaring a local constant of string over a local variable C#

在字符串上使用常量对性能有什么明显的好处。假设以下情况

public void MethodUsingConstant()
{
  const string searchedText = "foo";

  //some operations using searchedText string
}

public void MethodNoUsingConstant()
{
  string searchedText = "foo";

  //some operations using searchedText string
}

也可以选择将其带到 class-struct 常量字段。

或者,我应该避免对这些微优化考虑太多吗?

仔细想想,其实应该没有太大区别。那是因为当计算机看到一个变量时,它会检索它的内存地址,然后检索值。我已经尝试过这段代码,差异非常小(不到 3 毫秒:BTW 代码 运行 在 ~107 毫秒内)可能会减少到数百万个其他变量:

        //Just changed to non const
        const string s = "hello";

        string full = "";

        int k = 0;

        for(int i = 0; i < 10000; i++)
        {
            full += s;
        }

一般来说,const 与非 const 的区别在于:该值是否始终保持不变:将其设置为 const,否则就保留它。这是一个很棒的 link about .NET optimization

总而言之,只有当您的代码无法以任何其他方式优化时,您才应该关注这些微小的细节,在这种情况下,您的代码就很好。