Csharp/C#教程:为什么microsoft没有为stringbuilder重载+ =运算符?分享


为什么microsoft没有为stringbuilder重载+ =运算符?

对于StringBuilder类,为什么不重载+ =运算符而不是使用唯一的.Append()方法?

Append()只连接字符串,为什么它们不只是像这样重载+ =运算符:

StringBuilder sb = new StringBuilder(); sb += "My string"; 

这是效率的情况吗? 这是一个传统或直观的案例吗?

谢谢,

算术运算应限于类似于算术值的类型。 两个字符串的总和是第三个字符串是很糟糕的。 将加法运算与字符串连接相关联是一个值得怀疑的选择,因为字符串连接遵循很少的加法规则; 特别是, a + b != b + a

但是去那里寻找字符串构建器 – 根据定义可变状态而不是算术值 – 是可怕的两件事的总和应该是与两个加法不同的第三件事。 也就是说, a += b 必须具有与a = a + b相同的语义而不是a.MutateWith(b)如果最后没有对a的赋值,那么复合赋值是错误的运算符。

更一般地说: 永远不要让可爱的操作员超载 。 操作员超载是存在的,这样你可以将两个复杂的数字加到第三个,而不是让你可以让顾客加一jar花生酱等于采购订单,或者一些这样的愚蠢。

上述就是C#学习教程:为什么microsoft没有为stringbuilder重载+ =运算符?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1016105.html

(0)
上一篇 2021年12月31日
下一篇 2021年12月31日

精彩推荐