可能重复:
C# 是否优化了字符串文字的连接?
我刚刚发现我们写了这样一行:
string s = "string";
s = s + s; // this translates to s = string.concat("string", "string");
但是我通过反射器打开了字符串类,我没有看到这个 + 运算符在哪里重载?我可以看到 == 和 != 被重载了。
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public static bool operator ==(string a, string b)
{
return string.Equals(a, b);
}
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public static bool operator !=(string a, string b)
{
return !string.Equals(a, b);
}
那么为什么当我们使用 + 组合字符串时会调用 concat 呢?
谢谢。