• c#代码编程风格很实用


     

    1. 代码风格规范 

    规范

    说明

    缩进

    4个空格

    用Tab的话在不同地方显示长度会变

    行宽

    固定

    限制为在VS2010中不隐藏Solution Explorer时不超出边界

    括号

    不要依赖优先级而省略括号

    在复杂的条件表达式中清楚表示逻辑优先级

    断行与空白的{}行

    必须,不能省略

    单步Debug需要;

    使结构和对应关系清晰

    下划线

    只有两种情况下使用:

    • 类的私有成员以下划线开头
    • 事件响应函数以下划线分隔对象和动作

     

    大小写

    类型/类/函数名用Pascal形式

    变量用Camel形式

    类/类型/变量用组合名词,

    函数则用动词或动宾组合词

    注释

    • 复杂的注释应该放在函数头;
    • 注释只用来解释程序做什么,为什么这样做,以及要特别注意的地方;
    • 不要注释程序是怎么工作的,这应该在代码中清晰体现
    • 有明显相似作用的代码要用 #region #endregion 括起来并简单注释

    注释应随程序的修改而不断更新

    命名规则:

    规范

    示例

    类的私有成员

    以下划线开头,后第一个单词首字母小写其余首字母大写。

    _startPosition

    类的公有成员

    以属性(Property)体现,私有成员若需外部访问必须通过属性封装。

    public float StartPosition

    {

        get;

        private set;

    }

    类的属性名

    所有单词的第一个首字母都要大写。

    StartPosition

    其它除类的私有成员外的变量

    均为第一个单词首字母小写其余首字母大写。

    myPrivateVariable

    类、枚举、结构体的名字

    所有单词的第一个首字母都要大写。

    MiniSphere

    命名空间的名字

    所有单词的第一个首字母都要大写;

    不能有下划线,若有说明需划分子命名空间

     

     

    注释的一些模板

    文件注释

    位于文件开头:

    /***************************************************************************\

     * CodingCrazy Team @ MSRA-USTC Class

     *

     * Module Name:An unabbreviated name for the module (not the filename)

     * Abstract:

     *     Description of what this module does

     * Notes:

     *     [Optional] algorithm description, special case conditions,

     *     references, etc.

     *    

     * History:

     *     Created on 2010-11-24 by xxx

     *       # Add …

     *     Modified on 2010-11-25 by xxx

     *       # Add …

     *       # Remove ...

     *       # ...

     *     Modified on 2010-11-26 by xxx

     *       # ...

    \***************************************************************************/

     

    函数头部注释

    使用XML文档型注释,即///

    函数内部注释

    一律使用 //

     

     

    2. 代码设计规范

    函数功能:只做一件事,但是要做好。

    参数处理:所有传递过来的参数都需要用Assert断言保证其正确性。

          如:Assert( p != NULL );     Assert( s.length > 3 );

    错误处理:只用作Debug用途的输出信息代码等均需要嵌套在以下预处理语句中。

        #if _DAIDAI_DEBUG_

          // 这里是debug相关代码

        #endif

     

    Tips:

    • 使用Ctrl+K+C注释成片代码,Ctrl+K+U取消注释。
    • 善用代码片段和代码环绕:

        可以尝试输入#region后再按两下Tab键。

        输入fore后按两下Tab键再按Tab修改。

        按#if后再按两下Tab键。

        选中一片代码后右键菜单中选择Surround with...再选择 try或#region。

    • 使用F12和Ctrl+'-'在代码中导航。
    • 使用右键Refractor菜单项:比如用Encapsulate field来封装类内私有成员。
    • 使用右键Reslove菜单项加入命名空间。
  • 相关阅读:
    Oracle学习(十四):管理用户安全性
    Android在发送带有附件的邮件
    Naive Bayes Classification
    java大全经典的书面采访
    安卓实现实时视频传输
    TCP:三次握手,URG、ACK、PSH、RST、SYN、FIN 含义
    SYN(synchronous)TCP/IP
    面向对象、面向过程与哲学
    面向过程和面向对象的哲学基础
    面向过程
  • 原文地址:https://www.cnblogs.com/jhabb/p/1925634.html
Copyright © 2020-2023  润新知