开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2044|回复: 0
收起左侧

[C#图文教程] C#编程规范

[复制链接]

结帖率:100% (8/8)
发表于 2012-8-1 09:20:33 | 显示全部楼层 |阅读模式   江苏省宿迁市
C#语言规范
1.    命名规范
a)    类
【规则1-1】使用Pascal规则命名类名,即首字母要大写。
【规则1-2】使用能够反映类功能的名词或名词短语命名类。
【规则1-3】不要使用“I”、“C”、“_”等特定含义前缀。
【规则1-4】自定义异常类应以Exception结尾。
【规则1-5】文件名要能反映类的内容,最好是和类同名。
b)    类字段
【规则2-1】用camel规则来命名类成员变量名称,即首单词(或单词缩写)小写。
【规则2-2】类字段变量名前可加“_”前缀。
【规则2-3】坚决禁止在普通变量前加“m_”(这是VC老命名规则)。
c)方法
    【规则3-1】方法名采用Pascal规则,第一个字符要大写。
【规则3-2】方法名应使用动词或动词短语。
【规则3-3】类中访问修饰符或功能相同的方法应该放在一起, 且公共或实现接口的方法在前。
    d)属性
      【规则4-1】使用名词定义属性,属性使用Pascal规则,首字符大写。
【规则4-2】属性和相应字段名称要关联, 可以使用“重构”菜单来生成属性。
    e)参数
        【规则5-1】参数采用camel规则命名,且首字符小写。
        【规则5-2】使用描述性参数名称,参数名称应当具有最够的说明性。
        【规则5-3】不要给参数加匈牙利语类型表示法的前缀。
        【规则5-4】检查方法所有输入参数的有效性。
    f)常量
        【规则6-1】只读常量使用Pascal命名规则,即首字母大写。
    【规则6-2】枚举名使用Pascal规则命名,枚举成员本质属于常量,命名规则同上。
        【规则6-3】枚举值从小到大顺序定义。
        【规则6-4】静态字段或属性采用Pascal规则,即首字符大写。
    g)接口
        【规则7-1】接口定义使用Pascal规则,且必须以大写“I”开头。
        【规则7-2】接口名称要有意义,中间不要有下划线“_”等字符。
    【规则7-3】如果类实现了接口,名称尽量和接口相同, 只是省掉“I”字符。
    h)事件
        【规则8-1】委托名称采用Pascal规则,即首字符大写。
    【规则8-2】定义事件的委托要使用EventHandler后缀,且包括sender和e两个参数。
    【规则8-3】事件用到的参数类,名称要带EventArgs后缀。
i)    命名空间
【规则9-1】命名空间名称采用Pascal规则,且首字符大写。
【规则9-2】命名空间名称尽量反映其内容所提供的整体功能。
2.    注释规范
a)文件头部注释
【规则1-1】文件都包含文件头, 要说明文件名、作者、创建时间、变更记录。
        【规则1-2】推荐采用.NET形式书写头部注释。
    b)类及其成员注释
        【规则2-1】对方法和类使用“///”三斜线注释。
    【规则2-2】代码行文注释采用“//”和“/**/”进行, 应该尽量说明问题。
3.行文规范
    a)缩写规范
        【规则1-1】标识符应当直观可望文知意,不提倡使用任何缩写。
    【规则1-2】字符串变量推荐是用“str”或“s”开头,采用string.Empty来初始化。
    【规则1-3】普通对象可以以“obj”开头。
    【规则1-4】缩写可自行定义,一般取单词的前/后字符组成,以含义直观为准则。
    【规则1-5】一般情况下不要让缩写破坏标识符的含义。
b)排版
    【规则2-1】每行语句至少占一行,如果语句过长(超过一屏),则该语句断为两行显示。
    【规则2-2】把相似的内容放在一起,比如字段、属性、方法、事件等,使用“#region--#endregion”命令分组。
    【规则2-3】多个程序元素进行对等操作是, 操作符之前、之后或者前后都要加空格。
    【规则2-4】每个方法的源程序行数原则上应该少于200行。
    【规则2-5】语句嵌套层次不得超过3层。
    【规则2-6】避免相同的代码段在多个地方出现。
c)语句结构
    【规则3-1】如果使用了异常结构,一定要处理异常, 一般是要写日志文件。
    【规则3-2】分支语句不应该使用复杂长条件, 应该将长条件封装成方法。
    【规则3-3】switch语句,case后面必须接break。
    【规则3-4】禁止使用goto语句进行跳转。
    【规则3-5】行文中严禁出现“魔数”,特定含义的常数必须定义成枚举或常量。
    【规则3-6】不同类型的操作符混合使用时,使用括号给出优先级。
    【规则3-7】不允许使用复杂的操作符组合等。
    【规则3-8】循环、判断语句的程序块部分用花括号括起来, 即使只有一条语句。
    【规则3-9】在switch语句中总是要有default字句,建议使用断言。
    【规则3-10】每个类和方法完成单一的功能,不设计多用途面面俱到的类或方法。
    【规则3-11】严禁使用未经初始化的变量,变量通常使用构造方法来初始。
d)代码缩进
    【规则4-1】碰到大括号要换行。
    【规则4-2】不允许使用Java中的括号换行规范。
e)大小写
    【规则5-1】不要创建名称相同,但大小写区别的任何元素。
    【规则5-2】应当大写仅有两个字符的缩写。
    【规则5-3】不要把易混淆的数字和字符放在一起。
    【规则5-4】使用英文命名标识符。
f)重名规范
    【规则6-1】不允许变量名、类名、属性名、 方法名等与系统标识符重名。(系统标识符见附表)
g)SQL编码规范
    【规则7-1】SQL语句全部大写。
    【规则7-2】对较为复杂的SQL语句加上注释,说明其功能。
    【规则7-3】连接符OR、IN、AND、以及=、<=、>=等前后加空格。
    【规则7-4】使用明确的列代替 SELECT *。
h)软件架构
    【规则8-1】数据库中每一张表对应一个实体类/数据传输对象(DTO)。
    【规则8-2】实体类名称使用表名,也可带有Dto后缀。
    【规则8-3】三层架构应当合理使用,不应生搬硬套。
    【规则8-4】三层架构元素推荐使用后缀:
                数据传输对象        XxxxDto
                DAO工厂                XxxDAOFactory
                DAO接口                IXxxxDAO
                服务接口            IxxxxService
                DAO的数据库实现        XxxxDAOOracle/XxxxDAOInfomix
                业务逻辑            XxxxManager
i)系统
    【规则9-1】在国内不要随便使用设计模式等代码模式,因为并不流行。
    【规则9-2】系统输入、资源操作(如内存分配、文件及目录操作)、网络操作(如通信、调用等)、任务间的操作(如通信、调用等)时必须进行错误、超时、或则异常处理。
    【规则9-3】模块编写应该有完善的测试方面的考虑。


附表
表1 各种类型命名规范总结
类型    命名规则    注意事项    实例
类或结构    Pascal    首字符大写    HttpContext
接口    Pascal    加前缀I    IDataAdaper
枚举名    Pascal    首字符大写    CommandType
枚举值    Pascal    首字符大写    CommandType.Text
事件    Pascal    首字符大写    SelectedIndexChanged
自定义异常    Pascal    加后缀Exception    ArgumentException
公共字段    Pascal    首字符大写    Int32.MaxValue
方法    Pascal    首字符大写    ToString()
命名空间    Pascal    首字符大写    System.Xml
属性    Pascal    首字符大写    BackColor
保护或私有字段    Camel    首字符小写    myVariable
参数    Camel    首字符小写    cmdText

表2 数据类型缩写规则
数据类型    数据类型缩写    标准命名实例
Bool    b/is    IsVisable
Float    F    FPrice
Double    D    DPrice
Unit    U    UAge
Int    I    INumber
Char    Ch    ChCode
Byte    Bt    BtImages
String    Str    StrName
Struct    St    StStudent
Window    Wnd    WndMain
ArrayList    Lst    LstStudents
Array    Arr    ArrStudents
Hashtable    Ht    Htstudents

表3 Windows控件缩写规则
控件类型    控件名称    控件类型缩写    实例
Label    标签框    Lbl    LblMessage
LinkLabel    超链接标签框    Llbl    LlblToday
Button    按钮    Btn    BtnSave
TextBox    文本框    Txt    TxtName
MainMenu    菜单栏    Mmnu    MmnuFile
CheckBox    多选框    Chk    ChkStock
RadioButton    单选框    Rbtn    RbtnSelected
GroupBox    组合框    Gbx    GbxMain
PictureBox    图片框    Pic    PicImage
Panel        Pnl    PnlBody
DataGrid        Dgrd    DgrdView
ListBox        Lst    LstProducts
CheckedListBox        Clst    ClstChecked
ComboBox    组合框    Cbo    CboMenu
ListView    列表视图    Lvw    LvwBrowser
TreeView    树视图    Tvw    TvwType
TabControl        Tctl    TctlSelected
DateTimePicker        Dtp    DtpStartDate
HscrollBar        Hsb    HsbImage
VscrollBar        Vsb    VsbImage
Timer        Tmr    TmrCount
ImageList        Ilst    IlstImage
ToolBar    工具栏    Tlb    TlbManage
StatusBar    状态栏    Stb    StbFootPrint
OpenFileDialog        Odlg    OdlgFile
SaveFileDialog        Sdlg    SdlgSave
FoldBrowserDialog        Fbdlg    FbdlgBrowser
FontDialog        Fdlg    FdlgFoot
ColorDialog        Cdlg    CdlgColor
PrintDialog        Pdlg    PdlgPrint


表 4 数据库对象缩写规范
数据库对象    名称    简写    实例
Connection        Con    ConNorthwind
Command        Cmd    CmdReturnProducts
Parameter        Parm    ParmProductID
DataAdapter        Dap    DapProducts
DataReader        Dtr    DtrProducts
DataSet        Ds    DsNorthwind
DataTable        Dt    DtProduct
DataRow        Drow    DrowRow
DataColumn        Dcol    DcolProductID
DataRelation        Drl    DrlMasterDetail
DataView        Dvw    DvwFilteredProducts



您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表