首页 > 代码库 > C#项目代码规范

C#项目代码规范

.Net 项目代码风格要求

PDF版下载:项目代码风格要求V1.0.pdf

代码风格没有正确与否,重要的是整齐划一,这是我拟的一份《.Net 项目代码风格要求》,供大家参考。

1. C# 代码风格要求

1.1注释

类型、属性、事件、方法、方法参数,根据需要添加注释。

如果类型、属性、事件、方法、方法参数的名称已经是自解释了,不需要加注释;否则需要添加注释。

当添加注释时,添加方式如下图所示:

<iframe id="iframe_0.9198507787507681" style="border: none; width: 659px; height: 659px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/1.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.9198507787507681‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

1.2 类型(类、结构、委托、接口)、字段、属性、方法、事件的命名

优先考虑英文,如果英文没有合适的单词描述,可以使用拼音,使用中文是不符合要求的。

唯一可以使用中文的地方是枚举的枚举项,枚举项实际已经不属于本节标题的范畴了。这里只是放到一起说明,如下图所示:

<iframe id="iframe_0.5975019200208809" style="border: none; width: 251px; height: 98px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/2.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.5975019200208809‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

1.3 不使用缩写

所有类型、方法、参数、变量的命名不得使用缩写,包括大家熟知的缩写,例如msg。

1.4 代码使用半展开

第一步,打开Visual Studio,进入“工具”,“选项...”,如下图所示:

<iframe id="iframe_0.011491221245395034" style="border: none; width: 399px; height: 463px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/3.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.011491221245395034‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

第二步,进入“文本编辑器”,“C#”,“格式设置”,“新行”,取消掉右侧所有复选框中的对号,如下图所示:

<iframe id="iframe_0.8343532769533553" style="border: none; width: 757px; height: 493px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/4.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.8343532769533553‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

第三步,点击“确定”,完成设置。

1.5 使用Tab作为缩进,并设置缩进大小为4

第一步,打开Visual Studio,进入“工具”,“选项...”,如下图所示:

<iframe id="iframe_0.8224930762059026" style="border: none; width: 399px; height: 463px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/5.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.8224930762059026‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

第二步,进入“文本编辑器”,“C#”,“制表符”,如下图所示,设置制表符。

<iframe id="iframe_0.2637336418750855" style="border: none; width: 757px; height: 493px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/6.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.2637336418750855‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

第三步,点击“确定”,完成设置。

1.6 一个.cs源文件至多定义两个类型

如果两个类型的关系是紧密相关的,比如 产品、产品类型,此时Product类,和ProductType枚举可以定义在同一个Product.cs文件中。

但不能在一个.cs文件中出现两个不相关的类型定义,例如将 Product类和Reseller类(分销商)定义在一个BasicInfo.cs文件中。

1.7 类型名称和源文件名称必须一致

当类型命名为Product时,其源文件命名只能是Product.cs。

1.8 所有命名空间、类型名称使用Pascal风格(单词首字母大写)

如下图所示,红色标记的为使用Pascal风格的类型:

<iframe id="iframe_0.5436315364114319" style="border: none; width: 492px; height: 309px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/7.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.5436315364114319‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

注意ProductType是私有类型,不管类型是公有的还是私有的,其命名总是采用Pascal风格。

1.9 本地变量、方法参数名称使用Camel风格(首字母小写,其后每个单词的首字母大写)

红色标记的为使用Camel风格的变量或者方法参数:

<iframe id="iframe_0.056757133476176946" style="border: none; width: 506px; height: 365px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/8.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.056757133476176946‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

1.10 私有方法、受保护方法,仍使用Pascal风格命名

示例代码如下:

<iframe id="iframe_0.914444890515741" style="border: none; width: 413px; height: 203px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/9.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.914444890515741‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

1.11 如果if语句内容只有一行,可以不加花括号,但是必须和if语句位于同一行

范例1.9 中的if判断实际上与下面的语句是等效的:

<iframe id="iframe_0.22989915090871849" style="border: none; width: 379px; height: 66px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/10.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.22989915090871849‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

1.12 调用类型内部其他成员,需加this;调用父类成员,需加base

示例代码如下:

<iframe id="iframe_0.2856781413137497" style="border: none; width: 419px; height: 404px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/11.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.2856781413137497‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

1.13 类型内部的私有和受保护字段,使用Camel风格命名,但加“_”前缀

代码示例如下:

<iframe id="iframe_0.18335462805204017" style="border: none; width: 223px; height: 118px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/12.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.18335462805204017‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

1.14 不能出现公有字段

如果需要公有字段,使用属性进行包装。

1.15 类型成员的排列顺序

类型成员的排列顺序自上而下依次为:

字段:私有字段、受保护字段

属性:私有属性、受保护属性、公有属性

事件:私有事件、受保护事件、公有事件

构造函数:参数数量最多的构造函数,参数数量中等的构造函数,参数数量最少的构造函数

方法:重载方法的排列顺序与构造函数相同,从参数数量最多往下至参数最少。

<iframe id="iframe_0.18148482983307956" style="border: none; width: 624px; height: 407px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/13.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.18148482983307956‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

1.16 委托和事件的命名

委托以EventHandler作为后缀命名,例如 SalesOutEventHandler。

事件以其对应的委托类型,去掉EventHandler后缀,并加上On前缀构成。

例如,对于SalesOutEventHandler委托类型的事件,其事件名称为:OnSalesOut。

示例代码如下:

<iframe id="iframe_0.43209927701031403" style="border: none; width: 416px; height: 109px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/14.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.43209927701031403‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

1.17 返回bool类型的方法、属性的命名

如果方法返回的类型为bool类型,则其前缀为Is、Can或者 Try,例如:

<iframe id="iframe_0.15036929872127325" style="border: none; width: 278px; height: 255px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/15.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.15036929872127325‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

1.18 常见集合类型后缀命名

凡符合下表所列的集合类型,应添加相应的后缀。

说明后缀示例
数组Arrayint[] productArray
列表ListList<Product> productList
DataTable/HashTableTableHashTable productTable
字典DictionaryDictionay<string,string> productDictionary
EF中的DbSet /DataSetSetDbSet<Product> productSet

1.19 常见后缀命名

凡符合下表所列的局部变量、方法参数、字段、属性,均需添加相应的后缀。

说明后缀示例示例说明
费用相关CostShipCost运输费
价格相关PriceProductUnitPrice产品单价
消息相关Message(弃用Note)SuccessMessage成功消息
日期相关Date(弃用Time)OrderDate下单日期
计数、数量相关Count(弃用Time)LoginCount登录次数
链接地址相关UrlBlogUrl博客链接
图片相关ImageSignImage签名图片
金额相关AmountPrepaidAmount预付款
点数、积分相关PointMemberPoint会员积分
记录、日志相关Record(弃用Log)ErrorRecord错误记录
配置相关ConfigDataBaseConfig数据库配置
状态相关StatusOrderStatus订单状态
模式、方式相关ModeOpenMode打开方式
种类相关Category / Type 二选一UserCategory用户种类
工厂类相关FactoryConnectionFactory连接工厂
启用相关EnabledExportEnabled开启导出
流相关StreamUploadStream上传流
读取器相关ReaderExcelReaderExcel读取器
写入器相关WriterExcelWriterExcel写入器
适配器相关AdapterIntroOPAdapterIntroOP适配器
提供器相关ProviderMemebershipProvider会员信息提供器
包装器相关WrapperProductWrapperProduct包装器
连接相关ConnectionExcelConnectionExcel连接

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标记有层次,那么代码也要有层次

下面是书写符合要求的例子:

<iframe id="iframe_0.8501601370668785" style="border: none; width: 241px; height: 209px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/16.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.8501601370668785‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

下面是书写 不符合要求 的例子:

<iframe id="iframe_0.39451035190578865" style="border: none; width: 359px; height: 190px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/17.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.39451035190578865‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

2.2 所有标记必须闭合

示例代码如下:

<iframe id="iframe_0.06985848847002196" style="border: none; width: 249px; height: 55px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/18.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.06985848847002196‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

2.3 如果标记中间代码超过20行,则应在标记末尾加注标识

标注方式如下:

<iframe id="iframe_0.566745204681157" style="border: none; width: 223px; height: 212px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/19.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.566745204681157‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

3. CSS 代码风格要求

3.1 代码使用半展开

设置方法参考1.4节。

3.2 使用Tab作为缩进,并设置缩进大小为4

设置方法参考1.5节。

3.3 代码注释

注释主要说明该样式应用于页面的哪个部分,而非说明样式的应用效果,代码注释风格如下所示:

<iframe id="iframe_0.6502616065551985" style="border: none; width: 314px; height: 192px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/20.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.6502616065551985‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

3.4 代码编写

每一个样式设置必须独占一行,不能位于同一行,下面是符合要求的写法:

<iframe id="iframe_0.7860798480664313" style="border: none; width: 225px; height: 76px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/21.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.7860798480664313‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

下面是 不符合要求 的写法:

<iframe id="iframe_0.4471881166590288" style="border: none; width: 341px; height: 59px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/22.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.4471881166590288‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

3.5 嵌入式样式的比例不超过样式表代码总量的10%

嵌入式样式为直接写在HTML标记内部的样式,如下图所示:

<iframe id="iframe_0.17879907283611818" style="border: none; width: 259px; height: 23px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/23.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.17879907283611818‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

3.6 内联式样式的比例不超过样式表代码总量的30%

内联式样式为写在<head></head>中的样式,如下图所示:

<iframe id="iframe_0.18221133053284744" style="border: none; width: 222px; height: 200px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/24.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.18221133053284744‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

内联式样式,不能 写在<body></body>之间。

3.7 外联式样式表的比例不少于样式表代码总量的60%

外联式样式表为写在.css文件中的样式,通过link引入到XHTML页面中,如下图所示:

<iframe id="iframe_0.8645582947202899" style="border: none; width: 388px; height: 94px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/25.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.8645582947202899‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

4. JavaScript 代码风格要求

4.1 代码使用半展开

设置方法参考1.4节。

4.2 使用Tab作为缩进,并设置缩进大小为4

设置方法参考1.5节。

4.3 代码注释

代码注释需要说明“函数功能”、“入口参数”、“返回值”,注释范例如下:

<iframe id="iframe_0.8146605658447881" style="border: none; width: 280px; height: 112px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/26.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.8146605658447881‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

其中第一行说明函数功能;第二行说明入口参数;最后一行说明返回值

4.4 不得出现内嵌式代码

内嵌式代码是指写在XHTML标记中的JavaScript代码,下面的写法是 不符合要求 的:

<iframe id="iframe_0.11248968305366813" style="border: none; width: 514px; height: 30px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/27.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.11248968305366813‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

4.5 内联式代码占JavaScript的总量不得超过40%

内联式代码是指写在<head />或者<body />之间的代码:

<iframe id="iframe_0.39721952041209385" style="border: none; width: 265px; height: 187px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/28.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.39721952041209385‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

4.6 外联式代码占JavaScript的总量至少为60%

外联式代码指写在单独的.js文件中,然后通过script标记连接到XHTML页面中的代码。

<iframe id="iframe_0.8434383188276495" style="border: none; width: 526px; height: 79px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/29.png?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.8434383188276495‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>


感谢阅读,希望这篇文章能给你带来帮助!

<iframe id="iframe_0.29485007835495813" style="border: none; width: 387px; height: 285px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://tracefact.net/graph/codestyle/over.jpg?_=3118936%22%20style=%22border:none;max-width:993px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.29485007835495813‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

 

 

出处:http://www.cnblogs.com/JimmyZhang/archive/2013/06/05/3118936.html

C#项目代码规范