易截截图软件、单文件、免安装、纯绿色、仅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 步骤

1.添加命名空间引用
using System.Xml;
2.新建xml实例
public XmlDocument objXmlDoc = new XmlDocument();
3.加载Xml文档
string path=Server.Mappath("demo.xml");//得到文档路径
objXmlDoc.Load(path);//加载文档
4.查找要进行操作的结点
objXmlDoc.SelectNodes(xpath);//得到结点集合
objXmlDoc.SelectSingleN ......

asp.net(c#) 下SQL存储过程使用详细实例

记取记录集
create procedure getArticle
as
select * from Article_Content
GO
asp.net 调用方法
  SqlConnection Conn = new SqlConnection();
        Conn.ConnectionString = Data.Connstr();
        Conn.Open();
  ......

sql c#

C-#入门经典(第三版).pdf
using System;
using System.Data;
using System.Data.SqlClient;
namespace My_Student
{
    static class Program
    {
       
        static void Main()
  &n ......

GDI+入门(C#高速处理版本)

首先感谢CSDN的朋友laviewpbt为我给我的建议。
laviewpbt提出使用getpixel处理速度太慢,上不了档次。
这里我再给大家写两种处理速度更快的图形处理方式。
下面是个内存操作灰度的程序:
bmp = new Bitmap(Application.StartupPath + "\\1.jpg");
            ......

C# copydata消息处理

http://blog.csdn.net/carl2380/archive/2009/11/18/4826973.aspx
简介:
本文着重讲述了如果用WM_COPYDATA消息来实现两个进程之间传递数据.
进程之间通讯的几种方法:
在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯。常用的方法有
  使用内存映射文件
  通过共享内存DLL共享内存
  使 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号