.Net 项目代码风格要求小结
pdf版下载:项目代码风格要求v1.0.pdf
代码风格没有正确与否,重要的是整齐划一,这是我拟的一份《.net 项目代码风格要求》,供大家参考。
1. c# 代码风格要求1.1注释
类型、属性、事件、方法、方法参数,根据需要添加注释。
如果类型、属性、事件、方法、方法参数的名称已经是自解释了,不需要加注释;否则需要添加注释。
当添加注释时,添加方式如下图所示:
1.2 类型(类、结构、委托、接口)、字段、属性、方法、事件的命名
优先考虑英文,如果英文没有合适的单词描述,可以使用拼音,使用中文是不符合要求的。
唯一可以使用中文的地方是枚举的枚举项,枚举项实际已经不属于本节标题的范畴了。这里只是放到一起说明,如下图所示:
1.3 不使用缩写
所有类型、方法、参数、变量的命名不得使用缩写,包括大家熟知的缩写,例如msg。
1.4 代码使用半展开
第一步,打开visual studio,进入“工具”,“选项...”,如下图所示:
第二步,进入“文本编辑器”,“c#”,“格式设置”,“新行”,取消掉右侧所有复选框中的对号,如下图所示:
第三步,点击“确定”,完成设置。
1.5 使用tab作为缩进,并设置缩进大小为4
第一步,打开visual studio,进入“工具”,“选项...”,如下图所示:
第二步,进入“文本编辑器”,“c#”,“制表符”,如下图所示,设置制表符。
第三步,点击“确定”,完成设置。
1.6 一个.cs源文件至多定义两个类型
如果两个类型的关系是紧密相关的,比如 产品、产品类型,此时product类,和producttype枚举可以定义在同一个product.cs文件中。
但不能在一个.cs文件中出现两个不相关的类型定义,例如将 product类和reseller类(分销商)定义在一个basicinfo.cs文件中。
1.7 类型名称和源文件名称必须一致
当类型命名为product时,其源文件命名只能是product.cs。
1.8 所有命名空间、类型名称使用pascal风格(单词首字母大写)
如下图所示,红色标记的为使用pascal风格的类型:
注意producttype是私有类型,不管类型是公有的还是私有的,其命名总是采用pascal风格。
1.9 本地变量、方法参数名称使用camel风格(首字母小写,其后每个单词的首字母大写)
红色标记的为使用camel风格的变量或者方法参数:
1.10 私有方法、受保护方法,仍使用pascal风格命名
示例代码如下:
1.11 如果if语句内容只有一行,可以不加花括号,但是必须和if语句位于同一行
范例1.9 中的if判断实际上与下面的语句是等效的:
1.12 调用类型内部其他成员,需加this;调用父类成员,需加base
示例代码如下:
1.13 类型内部的私有和受保护字段,使用camel风格命名,但加“_”前缀
代码示例如下:
1.14 不能出现公有字段
如果需要公有字段,使用属性进行包装。
1.15 类型成员的排列顺序
类型成员的排列顺序自上而下依次为:
字段:私有字段、受保护字段
属性:私有属性、受保护属性、公有属性
事件:私有事件、受保护事件、公有事件
构造函数:参数数量最多的构造函数,参数数量中等的构造函数,参数数量最少的构造函数
方法:重载方法的排列顺序与构造函数相同,从参数数量最多往下至参数最少。
1.16 委托和事件的命名
委托以eventhandler作为后缀命名,例如 salesouteventhandler。
事件以其对应的委托类型,去掉eventhandler后缀,并加上on前缀构成。
例如,对于salesouteventhandler委托类型的事件,其事件名称为:onsalesout。
示例代码如下:
1.17 返回bool类型的方法、属性的命名
如果方法返回的类型为bool类型,则其前缀为is、can或者 try,例如:
1.18 常见集合类型后缀命名
凡符合下表所列的集合类型,应添加相应的后缀。
说明 | 后缀 | 示例 |
数组 | array | int[] productarray |
列表 | list | list<product> productlist |
datatable/hashtable | table | hashtable producttable |
字典 | dictionary | dictionay<string,string> productdictionary |
ef中的dbset /dataset | set | dbset<product> productset |
1.19 常见后缀命名
凡符合下表所列的局部变量、方法参数、字段、属性,均需添加相应的后缀。
说明 | 后缀 | 示例 | 示例说明 |
费用相关 | cost | shipcost | 运输费 |
价格相关 | price | productunitprice | 产品单价 |
消息相关 | message(弃用note) | successmessage | 成功消息 |
日期相关 | date(弃用time) | orderdate | 下单日期 |
计数、数量相关 | count(弃用time) | logincount | 登录次数 |
链接地址相关 | url | blogurl | 博客链接 |
图片相关 | image | signimage | 签名图片 |
金额相关 | amount | prepaidamount | 预付款 |
点数、积分相关 | point | memberpoint | 会员积分 |
记录、日志相关 | record(弃用log) | errorrecord | 错误记录 |
配置相关 | config | databaseconfig | 数据库配置 |
状态相关 | status | orderstatus | 订单状态 |
模式、方式相关 | mode | openmode | 打开方式 |
种类相关 | category / type 二选一 | usercategory | 用户种类 |
工厂类相关 | factory | connectionfactory | 连接工厂 |
启用相关 | enabled | exportenabled | 开启导出 |
流相关 | stream | uploadstream | 上传流 |
读取器相关 | reader | excelreader | excel读取器 |
写入器相关 | writer | excelwriter | excel写入器 |
适配器相关 | adapter | introopadapter | introop适配器 |
提供器相关 | provider | memebershipprovider | 会员信息提供器 |
包装器相关 | wrapper | productwrapper | product包装器 |
连接相关 | connection | excelconnection | excel连接 |
1.20 常见类型命名
凡存在下表中的类型,需采用下表指定的名称命名。
类型 | 命名 | 类型 | 命名 |
客户 | customer | 分销商 | reseller |
零售商 | retailer | 经销商/批发商 | dealer |
用户 | userinfo(user为数据库关键字) | 订单 | orderinfo(order为数据库关键字) |
供应商 | supplier | 管理员 | admin |
密码 | password | 会员 | member |
评论 | remark(弃用comment) | 文章 | article |
新闻 | news | 发票 | invoice |
导入 | import | 导出 | export |
公司、企业 | company(弃用enterprise) | 产品 | product |
省份 | province | 城市 | city |
区县 | district | 地址 | address |
角色 | role(弃用group) | 权限 | authority(弃用permission) |
仓库 | warehouse | 工厂 | plant |
登录 | login(弃用signin) | 登出 | logout(弃用signout) |
创建 | create(弃用add) | 编辑 | edit |
更新 | update | 删除 | remove(弃用delete) |
照片 | photo | 图片 | image |
1.21 常见字段、属性命名
字段、属性种类比较繁杂,因此仅列出最常用的几项。
类型 | 名称 | 类型 | 名称 |
id(int型) | id(“d”小写,弃用id) | guidid(guid型) | id |
name | 名称 | title | 标题 |
remark | 备注、描述(弃用memo、description) | category | 种类(弃用class、type) |
linkman | 联系人 |
2. xhtml 代码风格要求2.1 如果xhtml标记有层次,那么代码也要有层次
下面是书写符合要求的例子:
下面是书写 不符合要求 的例子:
2.2 所有标记必须闭合
示例代码如下:
2.3 如果标记中间代码超过20行,则应在标记末尾加注标识
标注方式如下:
3. css 代码风格要求3.1 代码使用半展开
设置方法参考1.4节。
3.2 使用tab作为缩进,并设置缩进大小为4
设置方法参考1.5节。
3.3 代码注释
注释主要说明该样式应用于页面的哪个部分,而非说明样式的应用效果,代码注释风格如下所示:
3.4 代码编写
每一个样式设置必须独占一行,不能位于同一行,下面是符合要求的写法:
下面是 不符合要求 的写法:
3.5 嵌入式样式的比例不超过样式表代码总量的10%
嵌入式样式为直接写在html标记内部的样式,如下图所示:
3.6 内联式样式的比例不超过样式表代码总量的30%
内联式样式为写在<head></head>中的样式,如下图所示:
内联式样式,不能 写在<body></body>之间。
3.7 外联式样式表的比例不少于样式表代码总量的60%
外联式样式表为写在.css文件中的样式,通过link引入到xhtml页面中,如下图所示:
4. javascript 代码风格要求4.1 代码使用半展开
设置方法参考1.4节。
4.2 使用tab作为缩进,并设置缩进大小为4
设置方法参考1.5节。
4.3 代码注释
代码注释需要说明“函数功能”、“入口参数”、“返回值”,注释范例如下:
其中第一行说明函数功能;第二行说明入口参数;最后一行说明返回值
4.4 不得出现内嵌式代码
内嵌式代码是指写在xhtml标记中的javascript代码,下面的写法是 不符合要求 的:
4.5 内联式代码占javascript的总量不得超过40%
内联式代码是指写在<head />或者<body />之间的代码:
4.6 外联式代码占javascript的总量至少为60%
外联式代码指写在单独的.js文件中,然后通过script标记连接到xhtml页面中的代码。
感谢阅读,希望这篇文章能给你带来帮助!
推荐阅读
-
.net项目配置文件导致runat="server"无效,不能自动生成声明代码的问题
-
.NET Core实战项目之CMS 第十一章 开发篇-数据库生成及实体代码生成器开发
-
配置eslint规范项目代码风格
-
ASP.NET MVC项目中EntityFramework"代码优先方法"的使用步骤
-
实例详解Vue项目使用eslint + prettier规范代码风格
-
.NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
-
VS Code书写vue项目配置 eslint+prettier 统一代码风格
-
VS Code书写vue项目配置 eslint+prettier 统一代码风格
-
vue简易微前端项目搭建(四):统一代码风格(EditorConfig + Eslint + Stylelint + Prettier)
-
.net项目配置文件导致runat="server"无效,不能自动生成声明代码的问题