`
pcajax
  • 浏览: 2184390 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

20条.net编码习惯 【转】

阅读更多

 

为了提高代码质量,欢迎高手拍砖指点,共同进步!!!

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->int Count;
Count 
= 100;
private static const int ZERO  =  0;
if(  Count  ==  ZERO )
{
// 执行一些操作
}

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

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

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

不好的习惯:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->           String  temp = String.Empty;
            
forint i = 0 ; i<= 100; i++)
            {
                temp 
+= i.ToString();
            }

好点的习惯:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->            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要好。

不好的习惯:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->            int Check = 0;
            
if( Check == 0 )
            {
                
// 执行一些操作

            }

好点的习惯:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->            bool Check = false;
            
if(!Check)
            {
                
// 执行一些操作
            }

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->   class A
   {

   }
   
class B : A
   {

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

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

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->           using(Cerate the proxy)
            {
                
//执行所需的操作
            }

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

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

代码
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->      class MyData
        {
            
public MyData()
            {
            }
            
public List<Customer> GetAllCustomer()
            {
               
using (SqlConnection objConnection = new SqlConnection("Connection string"))
               { 
                   
//执行一些操作得到需要的数据
               }
            
            }
        }

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

代码
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->        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 有性能损耗)

例如:

不好的习惯:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->forint i = 0; i<= 100; i++)
{    
   Calculate(i);
}

 好点的习惯:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->forint i = 0; i<= 100; i++)
{
//直接写Calculate逻辑。
}

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

不好的习惯:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->for(int i = 0 ; i<= 100; i++)
{
   try
   {
   }
   catch(Exception ex)
   {
    throw ex;
   }
}

好点的习惯:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->   try
   {
     for(int i = 0 ; i<= 100; i++)
     {
     }
   }
   catch(Exception ex)
   {
       
throw ex;
   }

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

例如:

不好的习惯:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->  try
  {
    int x,y,z;
    x 
= 0;
    y 
= 10;
    z 
= y/x;
   }
   catch(DevideByZeroException ex)
   {
    Throw ex;
   }

好点的习惯:

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->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更倾向于使用对象传递数据

分享到:
评论

相关推荐

    20条.net编码习惯

    ### .NET编码最佳实践解析 #### 一、增强代码可读性和维护性 ...综上所述,遵循这些.NET编码习惯可以显著提升代码的质量、可维护性和性能。开发者应时刻关注代码的效率和可读性,不断优化编码实践。

    VB.NET编码规范

    VB.NET编码规范是软件开发中的一个重要环节,它确保了代码的可读性、可维护性和团队协作的高效性。以下是对这些规范的详细解释: 1. **工程**: 工程组织应清晰,每个项目应有明确的功能划分。避免在一个项目中...

    ASP .NET编码方式,视频

    总的来说,这个视频涵盖了ASP.NET编码方式的多个方面,无论你是初学者还是有经验的开发者,都能从中受益,提升自己的ASP.NET开发技能。通过深入学习和实践,你将能够构建出更加高效、健壮的Web应用程序。

    C#.NET编码规范

    ### C#.NET编码规范 #### 一、环境设置 在开始编写C#代码之前,确保Visual Studio开发环境的设置能够支持良好的编码习惯。这包括调整一些默认设置,以确保代码风格的一致性和可读性。 - **去除VS开发环境中的一些...

    .net项目编码规范

    以下是一些核心的.NET编码规范要点: 1. **命名规范**: - **命名空间**:通常由项目名加上组织或机构名称组成,如`BODY.DAL`,确保全局唯一。 - **类命名**:使用能描述其功能的名词短语,遵循PascalCase(首...

    Asp.Net编码规范

    【Asp.Net编码规范】 1. 简介 Asp.Net编码规范是开发高效、可维护、可扩展Web应用程序的基础。它涵盖了静态文件(HTML页面)和动态文件(ASPX文件)的编码规则,旨在确保代码的清晰度、一致性和易读性。这些规范...

    vb.net编码规范

    VB.NET编码规范是微软开发的一种面向对象的编程语言,它基于.NET Framework,旨在提供一种高效、易读且可维护的代码编写方式。遵循VB.NET编码规范对于任何开发者来说都至关重要,因为它可以提升代码质量,增强团队...

    ASP.NET编码规范

    ASP.NET编码规范是确保开发团队在创建Web应用程序时遵循一致性和可维护性的准则...以上ASP.NET编码规范和良好编程习惯是开发高质量、易于维护的ASP.NET应用的基础。遵循这些规范,可以显著提升代码质量和团队协作效率。

    asp.net 编码规范

    ### ASP.NET 编码规范详解 #### 1. 目的 本文档旨在为ASP.NET项目的编码提供统一标准,确保代码一致性与可读性,便于团队间的协作与后期维护。 #### 2. 范围 该规范适用于所有参与ASP.NET项目开发的人员,涵盖了从...

    ASP.NET简体繁体转换

    ASP.NET简体繁体转换是Web开发中一个重要的功能,特别是在面向两岸三地或全球华人的网站设计中。这个技术允许网站内容根据用户的语言偏好自动转换为简体或繁体,提高了用户体验。以下是对这个主题的详细解释: 1. *...

    .NET软件开发编码规范

    应用编码规范对于软件本身和软件开发人员而言尤为重要,有以下几个原因: 1、好的编码规范可以尽可能的减少一个软件的维护成本 ,...4、长期的规范性编码还可以让开发人员养成好的编码习惯,甚至锻炼出更加严谨的思维;

    C# asp.net编码规范文档

    **C# ASP.NET编码规范文档** 编码规范是软件开发中不可或缺的一部分,它旨在提高代码的可读性、可维护性和团队协作效率。本文档将详细阐述C#编程语言在ASP.NET框架下的编码最佳实践和规范。 ### 1. 编写目的 编写...

    C#.NET编码规范整理.pdf

    ### C#.NET编码规范详解 #### 一、环境设置与编码风格 在C#.NET的开发过程中,确保编码规范的一致性是至关重要的。这不仅能够提升代码的可读性和可维护性,还能够帮助团队成员更高效地理解和协作。在Visual Studio...

    最佳ASP.NET编程习惯

    ### 最佳ASP.NET编程习惯详解 #### 一、前言 在软件开发领域,尤其是在Web应用开发中,ASP.NET作为一种广泛使用的开发框架,其高效性和灵活性备受开发者青睐。对于初学者来说,掌握良好的编程习惯至关重要,它不仅...

    C#、Asp.Net编码规范汇总

    以下是对"C#、Asp.Net编码规范汇总"中的主要知识点的详细说明: 1. **命名规范**: - 类名应使用帕斯卡命名法(PascalCase),例如`MyClassName`。 - 变量名和方法名应使用驼峰命名法(camelCase),如`...

    中文转换成NCR编码

    在IT领域,尤其是在处理网页和富文本内容时,字符编码是一个至关重要的概念。...在编程实践中,我们应当养成良好的编码习惯,注意字符编码的选择和转换,以便在各种环境和场景下都能得到理想的显示效果。

    MyEclipse plugins,修改编码格式

    通过标签,我们可以理解这是一个关于调整MyEclipse以符合.NET编码习惯的任务,这可能涉及到代码格式化、命名约定和代码检查等环节。 【压缩包子文件的文件名称列表】 1. **links**:这可能是一个链接文件,用于...

    用VB.NET实现的简繁体互转工具

    在这个特定的场景中,我们关注的是一个使用VB.NET实现的“简繁体互转工具”。 简繁体互转是中文信息处理中的一个重要功能,它涉及到中文字符集的转换。在简体中文和繁体中文之间进行转换,对于跨地区、跨文化的沟通...

    VB.NET项目转C#,老外的另一个程序···(收费)

    6. **性能对比**:通常认为C#的性能优于VB.NET,但这很大程度上取决于编码习惯和具体应用场景。在实际项目转换时,需要考虑性能优化。 7. **社区和资源**:C#有更广泛的社区支持,文档和开源项目丰富,开发者在遇到...

Global site tag (gtag.js) - Google Analytics