Jon*_*eet 10
数字运算符是IL本身的一部分.字符串上的"+"运算符有点特殊 - 它不会被字符串类型本身重载,它由编译器完成.C#编译器翻译:
string x = a + "hello" + b;
Run Code Online (Sandbox Code Playgroud)
成:
string x = string.Concat(a, "hello", b);
Run Code Online (Sandbox Code Playgroud)
这比使用普通运算符进行连接更有效,因为否则必须在每个连接处创建新字符串.
String类只有两个,它们具有符合CLS的名称:op_Equality和op_Inequality.编译器具有许多System.String类的内置知识.必要的是为了能够使用Ldstr操作码.同样,它将+运算符转换为String.Concat().
几乎是Int32的故事,运营商和IL操作码之间存在直接匹配.
归档时间: |
|
查看次数: |
309 次 |
最近记录: |