易截截图软件、单文件、免安装、纯绿色、仅160KB

C#字符串浅析

    刚开博不久,就很想写点东西,但是出于种种原因都没动手。有了博客总不能空着,就在琢磨着写些什么。刚好学习了字符串的一些东西,做了下笔记感觉还不错,拿出来晒晒...
    先说说字符串操作的性能问题。C#中的字符串操作,用得也比较多,大家都不陌生。反正就是声明一个字符串变量,然后使劲地赋值,置空,再赋值(对一个字符串变量多次的赋值)。这时候会出现效率问题。why?其实字符串是一个不可变的数据类型,一旦对字符串对象进行了初始化,该对象就不能改变了。也就是说给字符串申请了一个空间,该空间就存在了,不会变化。如果再给字符串赋值,实际就是再申请一块空间,然后把原来的丢到,等待垃圾回收。举个例子:
string str=”hello! ”;
str+=”what is your name.”;
上述代码执行情况是:声明str时为str声明一个能够存储hello!的空间,然后把地址给str。执行+=时,把hello!与what is your name.合并,并申请一个能够存储合并后字符串的空间再把地址给str。先前声明存放hello!的空间,等待垃圾回收处理。
    再来谈谈StringBuilder类。StringBuiler通常分配的内存会比需要的更多。开发人员可以选择显式指定StringBuilder要分配多少内存,但如果没有显式指定,存储单元量在默认情况下就根据StringBuilder初始化时的字符串长度来确定。属性:
Length指定字符串的实际长度;
Capacity是字符串占据存储单元的最大长度。
对字符串的修改就在赋予StringBuilder实例的存储单元中进行,这就大大提高了添加子字符串和替换单个字符的效率。删除或插入子字符串仍然效率低下,因为这需要移动随后的字符串。当扩展字符串容量时,才需要给字符串分配新内存,才可能移动包含整个字符串。在添加额外的容量时,StringBuilder如果检测到容量超出,且容量没有设置新值,就会使自己的容量翻倍。StringBuilder并不总能提高性能。StringBuilder类基本上应在处理多个字符串时使用。但如果只是连接两个字符串,使用System.String会比较好。
    最后说下什么是字符串的复合格式设置。可能描述会有点多,现就自己说点,再引用点别人的东西《C#高级编程(6版)》,说明下复合格式设置中格式字符串是怎么解析的。格式字符串本身大都由要显示的文本组成,但只要有要格式化的变量,它在参数列表中的下标(下标放在{}中)就必须放在括号中。在括号中还可以有与该项的格式相


相关文档:

C#写XML的简单例子

这个例子要把bookstore.xml文件增加一条book记录
1 bookstore.xml
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
  <book genre="love" ISBN="1234123">
    <title>who am i </title>
    <author>who</author>
   ......

C#删除XML结点的简单例子

接上一篇
删除原genre属性,删除leixing=love的所有结点。
1 原xml文件 bookstore.xml
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
  <book genre="love" ISBN="1234123">
    <title>who am i </title>
    <author>who</aut ......

提高c#的要点



提高C#编程水平的50个要点


1.总是用属性 (Property) 来代替可访问的数据成员
2.在  readonly 和 const 之间,优先使用 readonly
3.在 as 和 强制类型转换之间,优先使用 as 操作符
4.使用条件属性 (Conditional Attributes ......

基于C#的MapInfo开发时常用的命名空间总结


命名空间:  MapInfo.Data
MapInfo.Data 命名空间包含了实现 MapInfo .NET 数据提供方的类和接口。 对 MapInfo 数据的访问有两种形式:作为使用 SQL 与数据交互的 ADO.NET 数据提供程序和作为使用类与数据交互的 Feature 对象。 MapIn ......

C#界面美化推荐DotNetBar

DotNetBar正式版8.4.0.2,通过中国控件网采购。与试用版有明显的区别。主要是启动速度,正式版启动速度很快。另外有个问题提醒大家。
1、在工具栏中添加竖条,在DotNetBar中只需将需要添加这个竖条后面的控件的BeginGroup属性为true即可。
2、ComboBoxItem,使用。当DropDownStyle为DropDown时,不能在设计界面添加item否 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号