1) C#中的string可以用一种verbatim的方式创建,即以@开始的字符串,换行和其他转义字符将被保留。
2) string可以用[]直接访问其元素字符。
3) 每次对string的合并操作都会建立一个新的拷贝,多次合并所带来的重复拷贝是非常低效的。所以StringBuilder有其用武之地。
4) StringBuilder是可改变的。修改StringBuilder对象时,string也会被修改,而不仅仅是修改拷贝;而string则是不可改变的,每次改变都将创建新的拷贝。AppendFormat方法颇类似于MFC中的CString.Format,但更高级。
5) 定界符有个缺憾:当多个定界符连在一起时,只会考虑第一个定界符。如果希望连续的定界符都被识别,就需要正则表达式。
6) 正则表达式中的@同样避免\被解释为转义符。
7) 正则表达式中的组可以在匹配的同时将结果分类。其中,( )用于建立一个组,?< >用于命名组。且Match中的Groups可以直接用组名进行索引。
8) Capture用于保存每次匹配的结果,在一个String中可能对一个组有多个匹配,分别保存在Captures这个CaptureColletion中。
9) Match继承Group,Group继承Capture。Match中有一个GroupCollection成员Groups,Group有一个CaptureCollection成员Captures。同一个Group中的Capture,后面的会覆盖前面的,所以从Group外界只能看到最后的一个Capture,但通过观察Group的CaptureCollection就可以看到所有的Capture。