一 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()一下。

二 慎用异常

由于程序抛出一个异常,就会创建一个异常对象,然后应用程序会在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#开发应避免的几个小滥用的更多相关文章

  1. SQL开发中容易忽视的一些小地方(一)

    原文:SQL开发中容易忽视的一些小地方(一) 写此系列文章缘由: 做开发三年来(B/S),发现基于web 架构的项目技术主要分两大方面: 第一:C#,它是程序的基础,也可是其它开发语言,没有开发语言也 ...

  2. SQL开发中容易忽视的一些小地方(四)

    原文:SQL开发中容易忽视的一些小地方(四) 本篇我想针对网上一些对于非聚集索引使用场合的某些说法进行一些更正. 下面引用下MSDN对于非聚集索引结构的描述. 非聚集索引结构: 1:非聚集索引与聚集索 ...

  3. 小程序开发运营必看:微信小程序平台运营规范

    一.原则及相关说明 ​ 微信最核心的价值,就是连接——提供一对一.一对多和多对多的连接方式,从而实现人与人.人与智能终端.人与社交化娱乐.人与硬件设备的连接,同时连接服务.资讯.商业. ​ 微信团队一 ...

  4. SQL开发中容易忽视的一些小地方(五)

    原文:SQL开发中容易忽视的一些小地方(五) 背景: 索引分类:众所周知,索引分为聚集索引和非聚集索引. 索引优点:加速数据查询. 问题:然而我们真的清楚索引的应用吗?你写的查询语句是否能充分应用上索 ...

  5. SQL开发中容易忽视的一些小地方(二)

    原文:SQL开发中容易忽视的一些小地方(二) 目的:继上一篇:SQL开发中容易忽视的一些小地方(一) 总结SQL中的null用法后,本文我将说说表联接查询. 为了说明问题,我创建了两个表,分别是学生信 ...

  6. SQL开发中容易忽视的一些小地方(六)

    原文:SQL开发中容易忽视的一些小地方(六) 本文主旨:条件列上的索引对数据库delete操作的影响. 事由:今天在博客园北京俱乐部MSN群中和网友讨论了关于索引对delete的影响问题,事后感觉非常 ...

  7. SQL开发中容易忽视的一些小地方( 三)

    原文:SQL开发中容易忽视的一些小地方( 三) 目的:这篇文章我想说说我在工作中关于in和union all 的用法. 索引定义 : 微软的SQL SERVER提供了两种索引:聚集索引(cluster ...

  8. DevStore开发人员服务有奖征文:小谈新浪微博开放平台

    DevStore开发人员服务有奖征文:小谈新浪微博开放平台 笔者接入新浪微博开发平台也有一段时间了,对整个平台的接入也算比較熟悉,新浪提供了统一的API接口,能够让开发人员更方便的使用API来实现自己 ...

  9. 微信小程序开发:学习笔记[7]——理解小程序的宿主环境

    微信小程序开发:学习笔记[7]——理解小程序的宿主环境 渲染层与逻辑层 小程序的运行环境分成渲染层和逻辑层. 程序构造器

随机推荐

  1. java输出当前文件所在路径

    System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径

  2. 写一个自定义类加载器demo

    public class MyTest16 extends ClassLoader { private String classLoaderName; private String fileExten ...

  3. Struts2 简单的增删改查

    1:主页面 <a href="emp-list">emp-list</a> <br> 然后到struts.xml文件中找到对应的emp-list ...

  4. yii2 后台前后台 前后台登陆、退出问题

    问题描述:我使用前后台分离 配置如下: 'user' => [ 'identityClass' => 'app\models\User', 'enableAutoLogin' => ...

  5. hdu 5860 Death Sequence(递推+脑洞)

    Problem Description You may heard of the Joseph Problem, the story comes from a Jewish historian liv ...

  6. c#获取MAC地址和IP地址

    一获取mac地址 1.先添加system.management的dll组件2.添加引用 public string GetMACAddress(){string MoAddress = "& ...

  7. 《ArcGIS Runtime SDK for .NET开发笔记》 --Hello Word

    这里我们将创建第一个用于显示地图的APP. 1.新建一个WPF程序 首先我们打开Visual Studio,选择新建项目. 选择已安装——模板——Windows桌面——WPF应用程序  2.添加Run ...

  8. win10 打开 sql sever配置管理器

    !找到解决办法啦!WIN10系统 此电脑->右击->管理弹出以上界面啊哈哈哈还有一些解决办法在这个贴吧里...http://tieba.baidu.com/p/3000709047

  9. VisualStudio下std::string的内存布局

    主要成员 union _Bxty { // storage for small buffer or pointer to larger one _Elem _Buf[_BUF_SIZE]; _Elem ...

  10. SQL才是世界上最牛逼的语言!

    身处互联网行业,SQL 可能是你需要掌握的核心技能之一. 最早的时候,SQL 作为一门查询数据库的语言,是程序员的必备技能,运维.开发.Web 以及数据等从业人员都需要用到 SQL,毕竟只有查询到正确 ...