Resharper总是建议我使用const字符串而不是字符串

uza*_*y95 10 resharper const

哪一个好:

string sQuery = "SELECT * FROM table";
Run Code Online (Sandbox Code Playgroud)

要么

const string sQuery = "SELECT * FROM table";
Run Code Online (Sandbox Code Playgroud)

为什么resharper总是建议我这样做?

Jon*_*eet 21

后者更好 - 这意味着:

  • 这不是实例变量,因此您不会在创建的每个实例中都使用冗余字符串引用
  • 您将无法更改变量(您可能不想要)

"const"在从其他程序集和版本控制访问方面还有一些其他影响,但它看起来像是一个私有字段,所以它不应该是一个问题.你大多可以认为它是:

static readonly string sQuery = ...;
Run Code Online (Sandbox Code Playgroud)

一般来说,我认为最好在可能的情况下使字段为静态(如果它不是按实例变化,为什么它应该是实例变量?)和只读时(可变数据更难以推理) .让我知道如果你要我去到的之间的差异的细节static readonlyconst.