一尘不染

C#是否优化字符串文字的串联?

c#

例如,编译器是否知道要翻译

string s = "test " + "this " + "function";

string s = "test this function";

从而避免使用字符串连接对性能造成影响?


阅读 226

收藏
2020-05-19

共1个答案

一尘不染

是。这由C#规范保证。在C#3.0规范的7.18节中:

只要表达式满足上面列出的要求,就会在编译时对表达式求值。即使表达式是包含非恒定构造的较大表达式的子表达式,也是如此。

(“上面列出的要求”包括应用于两个常量表达式的+运算符。)

另请参阅此问题

2020-05-19