【c#】开发应避免的几个小滥用
来源:互联网 发布:股票收益数据挖掘 编辑:程序博客网 时间:2024/06/06 03:52
c#开发应避免的几个小滥用
一 String和StringBuilder
少量的字符串操作不宜采用StringBuilder。
由于string是不可变得对象,对于string的叠加,每次操作都会生成一个新的string对象。所以针对大量string的操作时,我们会采用StringBuilde。但似乎很多人都知道这一点,所以只要字符串相加,不管三七二一都用StringBuilder。其实这是个误区,在这里要注意"大量"一词,少量的字符串操作用StringBuilder反而得不偿失。
比如下面的两种写法:
string sql = "insert into table (,,,)";
sql += " values ('')";和
StringBuilder sb = new StringBuilder();
sb.Append("insert into table (,,,)");
sb.Append(" values ('')");
string s = sb.ToString();宜采取第一种写法。因为只有两个字符串的相加,谈不上大量。如果用StringBuilder,最后还需要转换成string,结果性能反而差一些。
二 慎用异常
由于程序抛出一个异常,就会创建一个异常对象,然后应用程序会在Catch块中捕获该异常,造成性能影响非常大。
比如:
int OrderID;
try
{
OrderID = Convert.ToInt32(this.txtOrderID.Text);
}
catch(Exception e)
{
OrderID = .
}
这样的代码很不合适,造成的性能开销非常大。应该在客户端写js代码先去验证txtOrderID是否符合要求。
三 关于Session, Request
Session:
很多人喜欢用Session来保存持久对象的值。 但是当你的程序部署在多台服务器上做负载均衡时,可能会得不到Session保存的变量的值。 另外,由于Session是服务器端的内建对象,每开启一个Session对象,都在服务器上占用一些资源。
Request:
在页面间传值取值时,看到很多人都这么写代码:
string CustomerName = this.Request["txtCustomerName"].ToString();
其实后面的ToSTring()多此一举。this.Request["...."]本来就是string类型的,不必再去ToString()一下。
一 String和StringBuilder
少量的字符串操作不宜采用StringBuilder。
由于string是不可变得对象,对于string的叠加,每次操作都会生成一个新的string对象。所以针对大量string的操作时,我们会采用StringBuilde。但似乎很多人都知道这一点,所以只要字符串相加,不管三七二一都用StringBuilder。其实这是个误区,在这里要注意"大量"一词,少量的字符串操作用StringBuilder反而得不偿失。
比如下面的两种写法:
string sql = "insert into table (,,,)";
sql += " values ('')";和
StringBuilder sb = new StringBuilder();
sb.Append("insert into table (,,,)");
sb.Append(" values ('')");
string s = sb.ToString();宜采取第一种写法。因为只有两个字符串的相加,谈不上大量。如果用StringBuilder,最后还需要转换成string,结果性能反而差一些。
二 慎用异常
由于程序抛出一个异常,就会创建一个异常对象,然后应用程序会在Catch块中捕获该异常,造成性能影响非常大。
比如:
int OrderID;
try
{
OrderID = Convert.ToInt32(this.txtOrderID.Text);
}
catch(Exception e)
{
OrderID = .
}
这样的代码很不合适,造成的性能开销非常大。应该在客户端写js代码先去验证txtOrderID是否符合要求。
三 关于Session, Request
Session:
很多人喜欢用Session来保存持久对象的值。 但是当你的程序部署在多台服务器上做负载均衡时,可能会得不到Session保存的变量的值。 另外,由于Session是服务器端的内建对象,每开启一个Session对象,都在服务器上占用一些资源。
Request:
在页面间传值取值时,看到很多人都这么写代码:
string CustomerName = this.Request["txtCustomerName"].ToString();
其实后面的ToSTring()多此一举。this.Request["...."]本来就是string类型的,不必再去ToString()一下。
- 【c#】开发应避免的几个小滥用
- 应避免absolute布局滥用
- 开发应用时避免内存泄漏的注意事项
- php中常见的大坑,开发中应尽量避免
- C语言系统开发的几个小经验总结
- 避免滥用单例
- 避免滥用单例
- 避免滥用单例
- 避免滥用单例
- 避免滥用单例
- 关于指针应注意的几个小问题
- CSS的低权重原则—避免滥用子选择器
- 创业者应避免的六件事
- c嵌入式程序员应知道的几个基本问题
- c-c++程序员应知道的几个基本问题
- 单片机开发中应掌握的几个基本技巧
- ASP.NET WEB 开发效率 应注意的几个方面
- 嵌入式方案及软件开发应注意的几个常见问题
- 敏捷SOA成功秘诀四:IT运营和监测
- 【汇总c#.net常用函数和方法集】
- 【c#】C#基础全接触
- 用VB结束Excel的进程
- 通过DataSet更新数据库
- 【c#】开发应避免的几个小滥用
- 关于Hibernate操作数据库为空(数值类型)以及引起的问题的一点点总结
- 最近
- 改变一生的五句话
- .NET开发中的一些小技巧
- python 读取xml的方法
- Tomcat5.0下,更改index.jsp访问无变化
- 工作第一天
- XML-RPC