关于.NET字串的一些读书随笔

首先连接较小的字符串可以显著提高操作性能,因为这样可以使用高速缓存.如下例:
sLongString=sLongString+(”.”+Environment.NewLine)

将所有的字符串片断置入一个数组,然后把这些字符串片断连接为一个字符串,这就减少了内存分配次数和复制次数.

一些常用的字符串可以存为字符串常量,这样能够合理利用系统的内联池空间.

系统如果在编译时知道一个字符串中的字符是什么,就会内置这个字符串.

一个常量的作用和宏替换的作用相同.如果它没有被引用,就不会包括在IL代码中.

C#允许使用”@”符号表示鬃字的字符串字面量,也就是说在字符串前加了”@”后,字符串中的所有转义符都将无视.如下例:
Console.WriteLine(@”hello \n world”);
显示为
hello \n world

字符串型的Length属性并不是只读的.如果Length设置为小于字符串长度,字符串就会被截短.如果设置为大于当前长度,就需要在末尾添加空格.可以使用Capacity属性得到实际分配的字符数.

字符串比较时,Equals()方法与“=”运算符是等价的,但”=”运算符是所有运算操作中最慢的一个.

颠倒字符串次序可以使用如下代码:
string myString=”hello world”;
char[] myChars=myString.ToCharArray();
Array.Reverse(myChars);
此时myChars中存放的就是倒序的字符串.

如果String类能够有效工作,就不要使用StringBuilder.例如一个单独字符串的赋值操作.
如果要循环建立一个庞大的字符数据块,就使用StringBuilder.
如果需要国际化的字符串,就只能使用方法Compare()进行字符串比较.否则,使用CompareOrdinal()方法.
如果只需知道字符串是否相同,就应使用方法Equals(),而不是CompareOrdinal()方法.

字符串转成数字型使用数字型中的Parse()方法.
字符串转成日期和时间型使用DateTime的Parse()和ParseExact()方法.两种方法不同在于,Parse()方法可以转换任何有效的字符串表示,而ParseExact()方法只转换那些匹配所指定格式的字符串.

posted @ 2005-01-21 16:45  lykyl的自留地  阅读(647)  评论(0编辑  收藏  举报