CLR via C# 笔记 -- 字符、字符串、文本处理(14)

1. 字符串一经创建,便不能以任何方式修改,只能修改引用。

2. ToLowerInvariant() 和 ToUpperInvariant() 以忽略语言文化的方式将字符串转换为小写或大写形式。性能比ToLower() 和 ToUpper()好。而且Microsoft对执行大写比较的代码进行了优化。

3. 语言文化是用System.Threading.Thread.CurrentCulture属性获得

4. Char 转换成int时,强制转换效率最高;System.Convert()效率次之,IConvertible接口效率最差(值类型上调用接口方法要求对实例进行装箱)

5. 不建议硬编码 ,应使用System.Environment.NewLine,不同的平台可能返回不同。

6. 字符串连接时不要使用+操作符,这样会在堆上创建多个字符串对象,而堆是需要垃圾回收的,对性能有影响。建议使用 System.Text.StringBuilder类型

7. 判断相等性时使用Ordinal和OrdinalIgnoreCase标志,忽略语言文化比较最快;

8. 避免使用==和!=操作符比较,因为调用者不显示指出以什么方式执行字符串比较。CompareTo默认执行对语言文化敏感的比较。Equals执行普通的序号比较。

9. 字符串留用,Intern() 和 IsInterned(),内部hash表,Key是字符串,value是引用。

原文地址:https://www.cnblogs.com/Cxiaoao/p/14839633.html