相关疑难解决方法(0)

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总是建议我这样做?

resharper const

10
推荐指数
1
解决办法
2679
查看次数

将此 .NET 字符串更改为 const 是否会提高性能?IL 会自动这样做吗?

鉴于以下简单的 .NET 代码,这两者之间在字符串方面有什么区别"xml"吗?

if (extension.Equals("xml", StringComparison.OrdinalIgnoreCase))
{
    return FileType.Xml;
}
Run Code Online (Sandbox Code Playgroud)

对比

const string xmlText = "xml";
if (extension.Equals(xmlText, StringComparison.OrdinalIgnoreCase))
{
    return FileType.Xml;
}
Run Code Online (Sandbox Code Playgroud)

请注意,这个词"xml"在课堂上再也没有出现过。它实际上就在那个地方。

我的印象是,.NET 编译器的更新版本将像这样的简单字符串转换为 const(在后台)。

更棒的是,如果在另一个地方使用了另一个 "xml"字符串,编译器只会创建一个const,并且这两个引用都将引用该单个字符串引用/内存分配。

那么 - 在性能方面,幕后有什么不同吗?

免责声明:请不要发表“微优化”评论。我明白了。这实际上是关于理解事物与尝试对一行代码进行微优化。

.net c#

2
推荐指数
1
解决办法
914
查看次数

标签 统计

.net ×1

c# ×1

const ×1

resharper ×1