已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C 编码规范编码规范 文件编号 DE CS C DE CS C 密级 普通级普通级 文件状态 草稿草稿 发布发布 修改修改 当前版本 VersionVersion 3 03 0 上海华和得易信息技术发展有限公司上海华和得易信息技术发展有限公司 完成日期 2006 11 3 2006 11 3 组织级文档组织级文档 上海华和得易信息技术发展有限公司 DE CS C DealEasy 2005i 文档控制文档控制 文档更新记录文档更新记录 版本号版本号更新日期更新日期作者作者部门部门职务职务备注备注 1 02005 1 12 伍洲开发部 2 012005 11 10 胡梓芳开发部 2 022005 11 16 胡梓芳开发部 2 032005 11 17 胡梓芳开发部 2 042005 11 22 胡梓芳开发部 2 112005 12 09 胡梓芳开发部 2 122006 04 10 胡梓芳开发部 3 02006 10 30 伍洲开发事业部 SE 提交 SEPG 发布 文档审核记录文档审核记录 版本号版本号审核日期审核日期审核者审核者部门部门职务职务备注备注 1 02005 1 12 殷栋开发部部长 2 012005 11 10 殷栋开发部部长 2 022005 11 16 殷栋开发部部长 2 032005 11 17 殷栋开发部部长 2 042005 11 22 殷栋开发部部长 2 112005 12 09 殷栋开发部部长 2 122006 04 10 伍洲开发部 3 02006 11 3 葛 任 殷开发事业部总监 部长审核通过 上海华和得易信息技术发展有限公司 DE CS C DealEasy 2005ii 目录目录 1 1 命名命名 1 1 1 一般规则 1 1 1 1大写标识符约定 1 1 1 2区别大小写 1 1 1 3缩写的使用 2 1 1 4措词 3 1 2 命名空间 3 1 3 类命名 3 1 4 接口命名 5 1 5 变量命名 5 1 6 属性命名 6 1 7 枚举类型命名 7 1 8 静态字段命名 7 1 9 参数命名 8 1 10 方法命名 9 1 11 事件命名 10 1 12 控件命名 11 2 2 类布局类布局 14 2 1 基本格式 14 2 1 1缩进的使用 14 2 1 2括号的使用 15 2 1 3空格的使用 15 2 1 4代码行长度限制 17 2 1 5类成员排列顺序 18 2 2 画面类的布局 18 2 3 非画面类的布局 21 3 注注 释释 22 3 1 一般的注释 22 3 2 文件的注释 25 3 3 类的注释 25 3 4 函数的注释 25 3 5 变量和常量的注释 26 上海华和得易信息技术发展有限公司 DE CS C DealEasy 20051 1 1 命名命名 注 带注 带 示例为正确示例 带示例为正确示例 带 示例为错误示例示例为错误示例 1 1 1 1 一般规则一般规则 1 1 11 1 1大写标识符约定大写标识符约定 使用下面的三种大写标识符约定 使用下面的三种大写标识符约定 1 Pascal 大小写 将标识符的首字母和后面连接的每个单词的首字母都大写 可以对三字符或更 多字符的标识符使用 Pascal 大小写 示例 2 Camel 大小写 标识符的首字母小写 而每个后面连接的单词的首字母都大写 示例 3 大写 标识符中的所有字母都大写 仅对于由两个或者更少字母组成的标识符使用该 约定 示例 1 1 21 1 2区别大小写区别大小写 为了避免混淆和保证跨语言交互操作 请遵循有关区分大小写的使用的下列规则 为了避免混淆和保证跨语言交互操作 请遵循有关区分大小写的使用的下列规则 1 不要创建仅是名称大小写有区别的组件或类 示例 上海华和得易信息技术发展有限公司 DE CS C DealEasy 20052 1 1 31 1 3缩写的使用缩写的使用 为了避免混淆和保证跨语言交互操作 请遵循有关区缩写的使用的下列规则 为了避免混淆和保证跨语言交互操作 请遵循有关区缩写的使用的下列规则 1 不要将缩写或缩略形式用作标识符名称的组成部分 示例 2 不要使用计算机领域中未被普遍接受的缩写 3 在适当的时候 使用众所周知的缩写替换冗长的词组名称 示例 4 No 不作为缩写 用大写的 N 小写的 o 表示 示例 1 1 41 1 4措词措词 1 避免使用与常用的 NET Framework 命名空间重复的类名称 示例 1 2 1 2 命名空间命名空间 命名命名空间时的一般性规则是使用公司名称 后跟技术名称和可选的功能与设计 命名命名空间时的一般性规则是使用公司名称 后跟技术名称和可选的功能与设计 如下所示 如下所示 CompanyName SystemName Feature Design 示例 上海华和得易信息技术发展有限公司 DE CS C DealEasy 20053 1 给命名空间名称加上公司名称或者其他知名商标的前缀可以避免两个已经发布的命名 空间名称相同的可能性 2 应当对命名空间使用 Pascal 大小写 并用句点分隔逻辑组件 3 不要为命名空间和类使用相同的名称 例如 不要既提供 Debug 命名空间也提供 Debug 类 1 3 1 3 类命名类命名 以下规则概述命名类的指南 以下规则概述命名类的指南 1 使用名词或名词短语命名类 2 使用 Pascal 大小写 3 少用缩写 4 不要使用下划线字符 5 不要使用类型前缀 使用类名称 FileStream 而不是 CFileStream 6 有时候需要提供以字母 I 开始的类名称 虽然该类不是接口 只要 I 是作为类名称 组成部分的整个单词的第一个字母 这便是适当的 例如 类名称 IdentityStore 就是适当的 7 在适当的地方 使用复合单词命名派生的类 派生类名称的第二个部分应当是基类的 名称 例如 ApplicationException 对于从名为 Exception 的类派生的类是适当的 名称 原因是 ApplicationException 是一种 Exception 示例 8 当类位于某一层时 需要在类名前后加上相关层的名字作为该类名的前缀或者后缀 建议使用以下 Domain 架构层次前缀后缀说明 BusinessFacadeFFacade 业务访问层 Common Data Info Model业务实体 DataAccess DAO Entity数据逻辑访问层 Blo Blo 业务逻辑访问层 Rule Rule Logic逻辑层 上海华和得易信息技术发展有限公司 DE CS C DealEasy 20054 示例 1 4 1 4 接口命名接口命名 以下规则概述接口的命名指南 以下规则概述接口的命名指南 1 用名词或名词短语 或者描述行为的形容词命名接口 例如 接口名称 IComponent 使用描述性名词 接口名称 ICustomAttributeProvider 使用名词短语 名称 IPersistable 使用形容词 2 使用 Pascal 大小写 3 少用缩写 4 不要使用下划线字符 5 给接口名称加上字母 I 前缀 以指示该类型为接口 6 在定义类 接口对 其中类是接口的标准实现 时使用相似的名称 两个名称的区别 应该在接口名称上加字母 I 前缀 第二个字母大写 接口的示例 定义 IComponent 接口及其标准实现 Component 类的示例 上海华和得易信息技术发展有限公司 DE CS C DealEasy 20055 1 5 1 5 变量命名变量命名 以下规则概述命名变量的指南 以下规则概述命名变量的指南 1 使用名词或名词短语命名属性 2 成员变量中公有 保护变量使用 Pascal 大小写 私有变量使用下划线 Camel 大小 写 3 常量名表示 Table 名时 采用 Con TableName Table 的格式 示例 常量名表示 Field 名时 采用 Con FieldName Field 的格式 示例 4 局部变量建议在必要的最小的作用域内使用 计数器变量使用 i j k 来表示 5 如果在同一个函数体中 当同一层次类的实例不超过一个的情况下 对象的命名应该 用该类所处层的 Domain 代替 示例 类名类名对象名对象名 AccessoryFacade facade AccessoryDAOdao AccessoryDatadata 1 6 1 6 属性命名属性命名 1 使用名词或名词短语命名属性 上海华和得易信息技术发展有限公司 DE CS C DealEasy 20056 2 考虑用与属性的基础类型相同的名称创建属性 例如 如果声明名为 Color 的属性 则属性的类型同样应该是 Color 请参见本主题内下文中的示例 示例 3 使用 Pascal 大小写 示例 1 7 1 7 枚举类型命名枚举类型命名 枚举枚举 Enum Enum 值类型从值类型从 EnumEnum 类继承 以下规则概述枚举的命名指南 类继承 以下规则概述枚举的命名指南 1 对于 Enum 类型和值名称使用 Pascal 大小写 2 少用缩写 3 不要使用下划线字符 4 不要在 Enum 类型名称上使用 Enum 后缀 示例 5 对大多数 Enum 类型使用单数名称 但是对作为位域的 Enum 类型使用复数名称 总 是将 FlagsAttribute 添加到位域 Enum 类型 位域通常用于由可组合出现的元素 组成的列表 示例 上海华和得易信息技术发展有限公司 DE CS C DealEasy 20057 如果要表示一个同时拥有 Admin 和 User2 个权限的枚举 其对应的 Value 为 3 1 8 1 8 静态字段命名静态字段命名 以下规则概述静态字段的命名指南 以下规则概述静态字段的命名指南 1 使用名词 名词短语或者名词的缩写命名静态字段 示例 2 使用 Pascal 大小写 示例 3 建议尽可能使用静态属性而不是公共静态字段 上海华和得易信息技术发展有限公司 DE CS C DealEasy 20058 1 9 1 9 参数命名参数命名 必须仔细遵守这些参数的命名指南 这非常重要 因为提供上下文相关帮助和类浏览必须仔细遵守这些参数的命名指南 这非常重要 因为提供上下文相关帮助和类浏览 功能的可视化设计工具会在设计器中对用户显示方法参数名称 以下规则概述参数的功能的可视化设计工具会在设计器中对用户显示方法参数名称 以下规则概述参数的 命名指南 命名指南 1 使用描述性参数名称 例如 提供上下文相关帮助的可视化设计工具会按开发人员键 入的实际内容显示方法参数 在这种情况下 方法参数名称的表述必须清楚明白 开发人员才能提供正确的参数 2 对参数名称使用 Camel 大小写 使用描述参数的含义的名称 示例 3 不要使用保留的参数 示例 4 不要用字母 数字 不要使用下划线字符 示例 5 所有异常都用 ex 命名 示例 上海华和得易信息技术发展有限公司 DE CS C DealEasy 20059 6 开头为 ID No 等组合的参数名 应该保持首字母的大写 示例 1 10 1 10 方法命名方法命名 以下规则概述方法的命名指南 以下规则概述方法的命名指南 1 使用动词或动词短语命名方法 2 公有函数使用 Pascal 大小写 示例 3 私有函数使用 Camel 大小写 示例 1 11 1 11 事件命名事件命名 以下规则概述事件的命名指南 以下规则概述事件的命名指南 1 使用 Pascal 大小写 上海华和得易信息技术发展有限公司 DE CS C DealEasy 200510 2 对事件处理程序名称使用 EventHandler 后缀 3 指定两个名为 sender 和 e 的参数 sender 参数表示引发事件的对象 sender 参 数始终是 object 类型的 即使在可以使用更为特定的类型时也如此 与事件相关 联的状态封装在名为 e 的事件类的实例中 对 e 参数类型使用适当而特定的事件 类 4 用 EventArgs 后缀命名事件参数类 5 考虑用动词命名事件 例如 命名正确的事件名称包括 Clicked Painting 和 DroppedDown 6 使用动名词 动词的 ing 形式 创建表示事件前的概念的事件名称 用过去式表 示事件后 例如 可以取消的 Close 事件应当具有 Closing 事件和 Closed 事件 不要使用 BeforeXxx AfterXxx 命名模式 7 不要在类型的事件声明上使用前缀或者后缀 例如 使用 Close 而不要使用 OnClose 8 通常情况下 对于可以在派生类中重写的事件 应在类型上提供一个受保护的方法 称为 OnXxx 此方法只应具有事件参数 e 因为发送方总是类型的实例 示例 上海华和得易信息技术发展有限公司 DE CS C DealEasy 200511 1 12 1 12 控件命名控件命名 1 Web 控件 类型类型前缀前缀示例示例 AdRotatoradrtadrtTopAd ButtonbtnbtnSubmit CalendarcalcalMeetingDates CheckBoxchkchkBlue CheckBoxListchklchklFavColors CompareValidatorvalcvalcValidAge CustomValidatorvalxvalxDBCheck DataGriddgrddgrdTitles DataListdlstdlstTitles DropDownListdropdropCountries HyperLinklnklnkDetails ImageimgimgAuntBetty ImageButtonibtnibtnSubmit LabellbllblResults LinkButtonlnkbtnlnkbtnSubmit ListBoxlstlstCountries PanelpnlpnlForm PlaceHolderplhplhFormContents RadioButtonradradFemale RadioButtonListradlradlGender RangeValidatorvalgvalgAge RegularExpressionvalevaleEmail Validator RepeaterrptrptQueryResults RequiredFieldValidatorvalrvalrFirstName TabletbltblCountryCodes TableCelltblctblcGermany TableRowtblrtblrCountry TextBoxtxttxtFirstName ValidationSummaryvalsvalsFormErrors XMLxmlcxmlcTransformResults 上海华和得易信息技术发展有限公司 DE CS C DealEasy 200512 2 Windows 控件 类型类型前缀前缀示例示例 ButtonbtnbtnSubmit CheckBoxchkchkBlue CheckBoxListchklchklFavColors ComboBoxcbxcbxCompany ColorDialogcdgcdgColorDialog DataGriddgrddgrdTitles DateTimePickerdtpdtpTime DomainUpDownduddudDomain FontDialogfdgfdgFongDialog GroupBoxGbxGbxSelect HScrollBarhsbhsbView ImageListilstilstAuntBetty LabellbllblResults ListBoxlstlstCountries LinkLabellnklbllnklblReturn ListViewlstvlstvModel MainMenummummuFile MonthCalendarmcdrmcdrDate NumericUpDownnudnudNumeric OpenFileDialogofdofdFileDialog PanelpnlpnlForm PictureBoxpbxpbxImage PrintDialogpdgpdgPrintDialog ProgressBarpgbpgbProgressBar RadioButtonradradFemale SplittersplsplSplitter StatusBarstbstbStatus TabControltcltclControl TextBoxtxttxtFirstName TimertmrtmrTime treeViewtrvtrvTree VScrollBar1vsbvsbView 上海华和得易信息技术发展有限公司 DE CS C DealEasy 200513 常用控件的命名规则 常用控件的命名规则 检索 btnSearch 新增 btnInsert 更新 btnUpdate 删除 btnDelete 选择 btnSelect 确认 btnOK 取消 btnCancel 返回 btnReturn 下载 btnDownload 详细 btnDetail 上一页 btnPrv 下一页 btnNext 首页 btnBegin 尾页 btnEnd 2 2 类布局类布局 2 1 2 1 基本格式基本格式 2 1 12 1 1 缩进的使用缩进的使用 1 程序块要采用缩进风格编写 使用 Tab 键缩进 Tab 键的空格数设置为 4 个 说明 对于由开发工具自动生成的代码可以有不一致 如图 上海华和得易信息技术发展有限公司 DE CS C DealEasy 200514 2 不同级别的程序块之间 要在上一级的基础上加一个 Tab 缩进 示例 2 1 22 1 2 括号的使用括号的使用 1 类 函数 语句 for if 等的开括号 要另换一行与类名 函数名相同缩进 闭括号 必须独立于一行与开括号 相同缩进 与上方的程序块不能有 空行 上海华和得易信息技术发展有限公司 DE CS C DealEasy 200515 示例 2 1 32 1 3 空格的使用空格的使用 1 在两个以上的关键字 变量 常量进行对等操作时 它们之间的操作符之前 之后或 者前后要加空格 在 for 的循环控制语句中例外 示例 2 逗号 分号只在后面加空格 示例 3 比较操作符 赋值操作符 算术操作符 逻辑操作符 位域操作符 等双目操作符的前后加空格 示例 上海华和得易信息技术发展有限公司 DE CS C DealEasy 200516 4 地址运算符 等单目操作符前后不加空格 示例 5 前后不加空格 示例 6 if for while switch 等与后面的括号间应加空格 使 if 等关键字更为突出 明 显 示例 2 1 42 1 4 代码行长度限制代码行长度限制 1 每行的最大长度不能超过 110 列 2 程序中若有较长的表达式或语句 则要进行适应的划分 长表达式要在低优先级操作 符处划分新行 操作符放在新行之首 示例 上海华和得易信息技术发展有限公司 DE CS C DealEasy 200517 3 若函数中的参数较长 则要进行适当的划分 示例 4 注释过长则将超出部分换行划分 与上一行的注释对齐 5 不允许把多个短语句写在一行中 即一行只能写一条语句 2 1 52 1 5 类成员排列顺序类成员排列顺序 1 类中所有函数成员按照 public protected internal protected internal private 的顺序排列 同类修饰符之间的函数间隔一行 非同类修饰符之 间的函数间隔二行 示例 上海华和得易信息技术发展有限公司 DE CS C DealEasy 200518 2 类中的所有数据成员必须按照 private protected internal internal protected public 的顺序排列 同类修饰符之间的变量没有 间隔行 非同类修饰符之间的变量间隔一行 示例 2 2 2 2 画面类的布局画面类的布局 1 程序的一开始 顶端填写类的作成者信息 格式是作者的公司邮箱地址 类的开 始编写时间 示例 2 名称空间的顺序按照类型排列 先是 System 然后是项目级 各类型中按照字典 顺序排列 示例 上海华和得易信息技术发展有限公司 DE CS C DealEasy 200519 3 类中的常量定义 上方与系统控件对象间隔一行 下方与全局变量间隔一行 示例 4 类中所有全局变量按照修饰符的顺序排列 下方与 Page Load 方法间隔一行 示例 5 画面类中自动生成的方法 如 OnInit InitializeComponent 应该跟在 Page Load 后面 之间间隔一行 示例 6 画面事件按照查询 新增 更新 删除的事件顺序进行排列 应该跟在 OnInit InitializeComponent 后面 之间间隔一行 上海华和得易信息技术发展有限公司 DE CS C DealEasy 200520 示例 7 其他按钮事件应该写在删除事件之后 示例 8 所有的按钮事件处理完毕 DateGrid ItemCommand DateGrid ItemDataBound DateGrid ItemCreated 等事件的处理方法 之 间间隔一行 9 最后是所有函数 函数按照修饰符的顺序排列 参见 2 1 5 修饰符排列顺序 2 3 2 3 非画面类的布局非画面类的布局 1 程序的一开始 顶端填写类的作成者信息 格式是作者的公司邮箱地址 类的开 始编写时间 示例 上海华和得易信息技术发展有限公司 DE CS C DealEasy 200521 2 名称空间的顺序按照类型排列 先是 System 然后是项目级 各类型中按照字典 顺序排列 示例 3 类中的常量定义 上方与系统控件对象间隔一行 下方与全局变量间隔一行 示例 4 类中所有数据成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公共管理学期末在线考试试题
- 南京2025年教师招聘考试《教育综合知识》及答案
- 海上风电项目施工方案
- 民医院应急救治中心项目社会稳定风险评估报告
- 伏龙肝提取物的药理效应与靶点关联性-洞察及研究
- 动态资源分配机制-第1篇-洞察及研究
- 吉林省五地六市联盟2026届化学高一上期末质量检测试题含解析
- 湖南长沙县三中2026届化学高三第一学期期中考试试题含解析
- 大数据隐私保护中的零知识证明可验证模型-洞察及研究
- 3D打印生物活性材料研究-洞察及研究
- 2025河北省金融租赁有限公司校园招聘笔试历年难易错考点试卷带答案解析试卷2套
- 2025年教师招聘考试(行政职业能力测验)历年参考题库含答案详解
- 2025辽宁基金投资有限公司社会招聘4人笔试历年参考题库附带答案详解
- 2025焊工安全培训考试题库【含答案】
- 2025-2026学年人教版九年级上册数学期中押题试卷
- 2025-2026学年山东省潍坊市六级语文上册期中考试试卷及答案
- 2025至2030全球及中国汽车清洗系统行业发展趋势分析与未来投资战略咨询研究报告
- 吉林省松原市宁江区吉林油田第十二中学2023-2024学年八年级上学期11月期中数学试题(含答案)
- 快递业安全生产管理制度
- 2025年江苏省行政执法证考试题库附答案
- 用火用电安全培训资料课件
评论
0/150
提交评论