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版)》,说明下复合格式设置中格式字符串是怎么解析的。格式字符串本身大都由要显示的文本组成,但只要有要格式化的变量,它在参数列表中的下标(下标放在{}中)就必须放在括号中。在括号中还可以有与该项的格式相
相关文档:
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 ......
接上一篇
显示所有结点的内容
1 原xml文件 bookstore.xml
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book ISBN="1234123">
<title>who am i </title>
<author>who</author>
<price> ......
软件界面的响应特性是判断一款软件的非常重要的方面。一般来说,不管你软件功能做得有多么奇妙,如果软件有一点点死机的感觉都会让用户感到很讨厌,甚至怀疑你软件里是否藏有更大的问题。
要提高界面的响应特性,最好的办法莫过于使用多线程,并把呈现界面的线程独立出来。以前只有使用C++才能实现的多线程功能,现在在.Ne ......
1、引用的空间:
using System.DirectoryServices;
using System.ServiceProcess;
2、调用
private void button1_Click(object sender, EventArgs e)
{
String webSiteName = "默认网站";
String pathToRoot = @"C:\Inetpub\wwwroot";
CreateWebSite(webSit ......
1 JavaScript发送邮件
<script language="javascript">
function SendMail() {
document.location = "mailto:seat@wicresoft.com;?subject=Feedback";
&n ......