1、不要硬编string/ numeric,可以使用一些常量代替。 (提高可读性)

int Count;
Count = 100;
private static const int ZERO  =  0;
if(  Count  ==  ZERO )
{
// 执行一些操作
}

2、对于字符串比较-使用String. Empty ,而不是""。

3、不要声明成员变量为 public 或者proteted,尽量使用private 成员变量和public/protected 属性。 (修改)

4、当我们要在循环操作字符串,使用StringBuilder,而不是字符串,示例如下。

不好的习惯:

           String  temp = String.Empty;
            for( int i = 0 ; i<= 100; i++)
            {
                temp += i.ToString();
            }

好点的习惯:

            StringBuilder sb = new StringBuilder();
            for ( int i = 0 ; i<= 100; i++)
            {
                sb.Append(i.ToString());
            }

5、简单的操作,比起Collection更倾向使用Array。 (视情况,这里是建议)

6、比起ArrayList更倾向使用Generic Collection。 (视情况,这里是建议)

7、比起HashTable更倾向使用Generic Dictionary。 (视情况,这里是建议)

8、对于字符串的操作和存储,倾向于StringCollection和StringDictionary。 (视情况,这里是建议)

9、使用适合的数据类型。

例如:你想要判断状态,使用bool比int要好。

不好的习惯:

            int Check = 0;
            if( Check == 0 )
            {
                // 执行一些操作

}

好点的习惯:

            bool Check = false;
            if(!Check)
            {
                // 执行一些操作
            }

10、使用as做类型转换的时候,对转换后的值进行null值判断

   class A
   {

}
   class B : A
   {

}
    B objB = new B();
    A objA1  = (A) objB;
    A objA2 = objB as A;
    if( objA2 != null)
    {
     //执行所需的操作
    }

11、创建wcf代理,可以使用using表达式。 (很多地方可以这样使用)

           using(Cerate the proxy)
            {
                //执行所需的操作
            }

12、对于昂贵的资源(例如Connection, File 等等),遵照'Acquire late, release early’ (尽量晚的获取,尽量早的释放)准则。

例子:如果你想在数据操作时,使用的SqlConnection对象,请在方法级别,而不是在类级别创建实例。

代码

      class MyData
        {
            public MyData()
            {
            }
            public List<Customer> GetAllCustomer()
            {
               using (SqlConnection objConnection = new SqlConnection("Connection string"))
               { 
                   //执行一些操作得到需要的数据
               }
            
            }
        }

如果你想创建的类级别SqlConnection实例,确保您的类实现了IDisposable接口,并在Dispose()中清理SqlConnection实例。

代码

        class MyData : IDisposable
        {
            SqlConnection objConnection ;
            public MyData()
            { 
                objConnection = new SqlConnection("Connection string");
            }
            public List<Customer> GetAllCustomer()
            { 
                //通过objConnection得到需要的数据
            }
            public void Dispose()
            {
                //清理SqlConnection实例
                if( objConnection != null )
                {
                    if( objConnection.State == ConnectionState.Open)
                    {    
                       objConnection.Close();
                    }
                }
            }
        }

13、如果你不想别人扩展你的类功能,使用‘sealed’。

14、避免为每个类都声明‘destructor’ ,因为它会增加不需要常驻内存的类的生命周期。

15、相对manual threading,更倾向用Thread Pool 。

16、在循环内不要去调用其它方法。 (call function 有性能损耗)

例如:

不好的习惯:

for( int i = 0; i<= 100; i++)
{    
   Calculate(i);
}

好点的习惯:

for( int i = 0; i<= 100; i++)
{
//直接写Calculate逻辑。
}

17、不要在循环内处理异常,而是将循环处理的逻辑放在try/catch里面

不好的习惯:

for(int i = 0 ; i<= 100; i++)
{
   try
   {
   }
   catch(Exception ex)
   {
    throw ex;
   }
}

好点的习惯:

   try
   {
     for(int i = 0 ; i<= 100; i++)
     {
     }
   }
   catch(Exception ex)
   {
       throw ex;
   }

18、不用通过异常处理应用程序的逻辑

例如:

不好的习惯:

  try
  {
    int x,y,z;
    x = 0;
    y = 10;
    z = y/x;
   }
   catch(DevideByZeroException ex)
   {
    Throw ex;
   }

好点的习惯:

try
 {
   int x,y,z;
   x = 0;
   y = 10;
   if( x != 0 )
   {
      z = y/x;
   }
 }
 catch(Exception ex)
 {
 }

19、相对for/while  ,倾向使用foreach循环。[更正]

20、使用多层架构的系统,层与层之间的交互,比起DataSet/DataTables更倾向于使用对象传递数据。

作者:朱祁林
出处:http://zhuqil.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

20条.net编码习惯相关推荐

  1. 20条.net编码习惯 【转】

    为了提高代码质量,欢迎高手拍砖指点,共同进步!!! 1.不要硬编string/ numeric,可以使用一些常量代替. (提高可读性) <!--<br/ /><br/ /> ...

  2. 20条常见的编码陷阱

    不管你现在的编程技能有多么的高超,曾经你也是个亦步亦趋,不断的学习的初学者.在编程这条曲折的道路上,我想你肯定犯过一些低级的错误.遇见过一些普通的编码陷阱.本文作者跨越多个语言,为大家总结了20条常规 ...

  3. 10条PHP编程习惯助你找工作

    过去的几周对我来说是一段相当复杂的经历.我们公司进行了大裁员,我是其中之一,但却体验到了其中的乐 趣.我从来没有被开除过,所以很难不去想得太多.我开始浏览招聘板块,一个全职PHP程序员的职位很吸引人, ...

  4. 软件工程:需求分析的20条法则

    对商业用户来说,他们后面是成百上千个供应商,前面是成千上万个消费顾客.怎样利用软件管理错综复杂的供应商和消费顾客,如何做好精细到一个小小调料包的进.销.调.存的商品流通工作,这些都是商业企业需要信息管 ...

  5. 需求分析的20条法则

    需求分析的20条法则 对商业用户来说,他们后面是成百上千个供应商,前面是成千上万个消费顾客.怎样利用软件管理错综复杂的供应商和消费顾客,如何做好精细到一个小小调料包的进.销.调.存的商品流通工作,这些 ...

  6. 程序员,活得是本事:30 岁后的 20 条人生建议

    一个程序员看待职业的方式,决定了他能走多远. 有的人把职业当游戏,不论 buff 还是 bug 都要闯过去:有的人把职业当对手,不是一心想赢,只是不想输:有的人,活得是造型:有的人,活得是人设:程序员 ...

  7. 比程序员更好的职业_立即成为更好的程序员的20条技巧

    比程序员更好的职业 目录: (Table of contents:) Think Before You Code 编码前先思考 Understand the Business Behind Every ...

  8. 主  题: 吐血总结关于找工作的20条经验!!!

    主 题:  吐血总结关于找工作的20条经验!!!  作 者:  justformm (晓阳)  等 级:    信 誉 值:  98  所属社区:  扩充话题 求职与就业  问题点数:  20  回复 ...

  9. 吐血总结关于找工作的20条经验!!!

    http://blog.csdn.net/metababy/archive/2006/03/30/644428.aspx 主 题:  吐血总结关于找工作的20条经验!!!  作 者:  justfor ...

最新文章

  1. R语言curve绘图函数
  2. jbpm知识点——tasknode
  3. 这38篇原创文章,带我入门深度学习!
  4. linux下,redis 3.2.1双节点集群安装部署
  5. 【2021年度训练联盟热身训练赛第二场】g2g c u l8r(python)
  6. 华为语音解锁设置_今天才知道,华为自带文字转语音黑科技,1键按下这里即可开启...
  7. XCTF-高手进阶区:Web_php_include
  8. c++ 之类的前置声明
  9. 数据结构期末复习之插入排序
  10. 使用struts2未登录,不能操作
  11. stm32通讯协议编写源码_STM32连接TFT-LCD
  12. JavaScript截取分割字符串
  13. 智慧园区导航可视化分析平台技术方案
  14. 五险一金 | 2020年企业社保缴费为零问题
  15. Lightroom Classic CC 2019 for Mac(Lr CC 2019破解版)永久激活方法
  16. 一份完整详细的新媒体营销推广策划方案 (微信微博等)
  17. 买礼物的艰辛【二分】
  18. 【生产调度】基于遗传算法求解柔性生产调度(FJSP)问题含Matlab源码
  19. PTA R7-5 Jack cheng的烦恼3
  20. 【Oracle经典】132个oracle热门精品资料——下载目录 ...

热门文章

  1. 彩虹DS6.6免授权版源码+后台同步更新+独家防黑策略
  2. PIN码 Adsense在线身份验证
  3. Node.js 工具模块
  4. PHP 比较两个文本文件差异 A diff implementation for PHP
  5. 【转载】vim常用命令总结
  6. 华为机试——数字颠倒
  7. LeetCode 189. Rotate Array
  8. Linux—JVM等性能调优监控
  9. Connection对象 Statement对象 ResultSet对象
  10. 图片盒子控件 winform 114868210