C#.NET编码规范整理

微软C#编码规范.doc 微软内部员工写的.net编码规范 本文档描述了微软一站式代码示例库项目组所采纳的关于本地 C++ 和 .NET (C# 和VB.NET)代码的编程风格指导规范 1 概览 1 1.1 原则和主旨 1 1.2 术语 2 2 通用编程规范 3 2.1 明确和一致 3 2.2 格式和风格 3 2.3 库的使用 5 2.4 全局变量 5 2.5 变量的声明和初始化 6 2.6 函数的声明和调用 7 2.7 语句 8 2.8 枚举 9 2.9 空格 14 2.10 大括号 15 2.11 注释 17 2.12 代码块 立即下载
C#.NET编码规范整理

 

一、  环境设置

首先去除VS开发环境中的一些选项如下:

粘贴时调整缩进

将类型的左大括号置于新行

将方法的左大括号置于新行

将匿名方法的左大括号置于新行

将控制块的左大括号置于新行

将“else”置于新行

将“catch”置于新行

将“finally”置于新行

复选框去掉.

 

二、  命名规范

1)        通用性

l   标识的总长度不要超过32个字符。

l     标识符的基本语法是以字母和_开始,由字母数字及下划线组成的单词,第一个字符不能是数字。

l     只要合适,在变量名的末尾追加计算限定符(Avg、Sum、Min、Max、Index)。

l     在变量名中使用互补对,如 min/max、begin/end 和 open/close。

l     布尔变量名应该前加或包含 Is(is)。

l   尽量减少使用缩写,而是使用以一致方式创建的缩写。缩写应该只有一个意思;同样,每个缩写词也应该只有一个缩写。例如,如果用 min 作为 minimum 的缩写,那么在所有地方都应这样做;不要将 min 又用作 minute 的缩写。

l   在命名函数时包括返回值的说明,如 GetCurrentWindowName()。

l   避免对不同的元素重用名称,如名为 ProcessSales() 的例程和名为 iProcessSales 的变量。

l   在命名元素时避免同音异义词(如 write 和 right),以防在检查代码时发生混淆。

l   在命名元素时,避免使用普遍拼错的词。另外,应清楚区域拼写之间存在的差异,如 color/colour 和 check/cheque。

l   在内部范围中避免使用与外部范围中的名称相同的名称。若访问错误变量,则会产生错误结果。若变量与同一名称的关键字冲突,则必须在关键字前加适当的类型库以作标识。例如,若有一个名为 date 的变量,只能通过调用 System.Date 来使用内部 Date 函数。

l   接口名称以前缀“I”开始,后面接一个名词或名词词组(如 IComponent),或者接一个描述接口行为的形容词(如 IPersistable)。不要使用下划线,不要过多使用缩写,因为缩写会引起混淆。

l   事件处理程序的名称以一个描述事件类型的名词开始,后面接后缀“EventHandler”,如“MouseEventHandler”。 事件参数类的名称里要加“EventArgs”后缀。

l   如果某事件含有“之前”或“之后”的概念,请以现在时或过去时形式使用前缀,如“ControlAdd”或“ControlAdded”。

l   单个长字符串拆分成多行写。当一行被分为几行时,需要将串联运算符放在每一行的末尾。

l   SQL Server中不要给存储过程加sp 前缀/不要给用户定义的函数加 fn_ 前缀/不要给扩展存储过程加 xp_ 前缀。这些前缀是为标识系统保留的。将每个主要的SQL子句放在不同的行上,这样更容易阅读和编辑语句。

l   不要使用原义数字或原义字符串,如 For i = 1 To 7。而是使用命名常数,如 For i = 1 To NUM_DAYS_IN_WEEK 以便于维护和理解。

2)        变量命名

变量名称命名规则:形容词+名词(或名词)

    属性(类属性/类属性对应的私有变量)

l  类属性与类属性对应的私有变量基本一样。

类属性对应的私有变量是在类属性名的前面加“_”

如:private int _PageSize;// 类属性对应的私有变量

public int PageSize { set { _PageSize = value; } }//类属性

l  注意大小写要保持一致。每个单词的第一个字母必须大写。其它单词的第一个字母也大写。单词之间不加“_”。

l  不要使用public来定义一个属性。

l  属性名和类名以名词开始,如 EmployeeName 和 CarAccessory。

    私有变量(短期性/长期性)

l  短期性(方法内私有变量/不是经常用的变量)

u  定义前加“_”

u  如:string _strSQL = null;

u  第一个单词的第一个字母必须小写,其它单词第一个字母大写。单词之间不加“_”。

l  长期性(类私有变量/方法入口参数)

u  类私有变量:前加“_”,和类属性对应的私有变量一样。每个单词的第一个字母必须大写。其它单词的第一个字母也大写。单词之间不加“_”。

如:private int _PageSizeTmp;

u  方法入口参数:第一个单词的第一个字母必须小写,其它单词的第一个字母必须大写。如果只有一个单词组成全小写。单词之间不加“_”。

如:public static int SendCTTVOSMS(string mobile,string content)

public static string CallAccountHiVA(string restPhone,string userPhone)

    全局变量/静态变量/常量

l  定义要全部大写。如:public static int SMS_TYPE = 2;

l  定义部分也可小写。

如:public static string VOSMS_UserName = "88000002";

l  单词与单词之间加“_”分隔。

3)        函数命名

函数命名规则:动词+名词(或动词),每个单词第一个字母必须大写。单词之间不加“_”。

如:public static string GetOrderStatus(int sendMode,int statueID)

函数名和方法名以动词开始,如 InitNameArray() 和 CloseDialog()。

4)        控件命名

控件命名规则:类别+名称

类别对照表:


 

5)        表字段命名

l   在命名表时,用单数形式表示名称。例如,使用 Employee,而不是 Employees。

l   在命名表的列时,不要重复表的名称;例如,在名为 Employee 的表中避免使用名为 EmployeeLastName 的字段。

l   不要在列的名称中包含数据类型。如果后来有必要更改数据类型,这将减少工作量。

6)        Web文件目录结构命名

l   与过程名一样,文件和文件夹的名称也应该精确地说明它们的用途。

l   Web文件第一个单词的首字符要小写其它单词的首字符要大写。或全小写。文件存在后,在程序中要严格按照文件的大小写引入文件。目录名称必须全小写。

l   Web目录结构:

根---类库1

类库…N

解决方案启动文件

项目发布目录

    Web源代码--- inc( JS目录)

css(CSS目录)

后台目录

bin目录

app_data数据库目录

master目录

其它子功能目录

app_code类文件

images图片目录

 

三、  注释规范

1)        在文件的头部标明文件的作者,完成时间,它所完成的主要功能。

2)        程序有过改动后,要写上修改人、时间、简单原因说明列表。

如:

/********************************************************************

* 谁创建的 日期 什么功能描述

* 谁修改的 日期 什么功能描述

* 谁修添加 日期 什么功能描述

* 谁修删除 日期 什么功能描述

********************************************************************/

 

3)        函数等代码中的注释规范都按系统自动的注释格式

4)        修改代码时,总是使代码周围的注释保持最新。

5)        在每个例程的开始,提供标准的注释样本以指示例程的用途、假设和限制很有帮助。注释样本应该是解释它为什么存在和可以做什么的简短介绍。

6)        避免在代码行的末尾添加注释;行尾注释使代码更难阅读。不过在批注变量声明时,行尾注释是合适的;在这种情况下,将所有行尾注释在公共制表位处对齐。

7)        避免杂乱的注释,如一整行星号。

8)        在部署之前,移除所有临时或无关的注释,以避免在日后的维护工作中产生混乱。

9)        如果需要用注释来解释复杂的代码节,请检查此代码以确定是否应该重写它。尽一切可能不注释难以理解的代码,而应该重写它。尽管一般不应该为了使代码更简单以便于人们使用而牺牲性能,但必须保持性能和可维护性之间的平衡。

10)    在编写注释时使用完整的句子。注释应该阐明代码,而不应该增加多义性。

11)    在编写代码时就注释,因为以后很可能没有时间这样做。另外,如果有机会复查已编写的代码,在今天看来很明显的东西六周以后或许就不明显了。

12)    避免多余的或不适当的注释,如幽默的不主要的备注。

13)    使用注释来解释代码的意图。它们不应作为代码的联机翻译。

14)    注释代码中不十分明显的任何内容。

15)    为了防止问题反复出现,对错误修复和解决方法代码总是使用注释,尤其是在团队环境中。

16)    对由循环和逻辑分支组成的代码使用注释。这些是帮助源代码读者的主要方面。

17)    在整个应用程序中,使用具有一致的标点和结构的统一样式来构造注释。

18)     用空白将注释同注释分隔符分开。在没有颜色提示的情况下查看注释时,这样做会使注释很明显且容易被找到。

19)     为了防止在阅读代码时左右滚动源代码编辑器,每行代码或注释不得超过一个显示屏。

20)     可能多的注释变量表示的意思。

四、  其它代码风格/习惯

1)        JS和CSS文件必需是UTF-8编码的文件。

2)        单行的判断代码不需要加“{}”。

如:if (_url.Trim().Equals(String.Empty)) return -2;

能简写的代码要简写。保证自己写出来的代码每一句都是有效代码。

3)        不要使用VS的自动排版代码功能。

4)        少用“==”运算。应该使用“.Equals”进行比较。

5)        运算符前后要空一格。如:_TotalPage = _TotalRecord / _PageSize; 这样做是不会改变代码意图的,却可以使代码更加容易阅读。

6)        每一个操作结束后加一个空行。所有代码里不能有连续的二个或二个以上的空行。

7)        将大的复杂代码节分为较小的、易于理解的模块。

8)        近可能的使用TAB键来空位。不要使用4个空格来代替TAB键。

9)        在页面文件中不能定义static类型的来传递数据。

.Net编码规范(Microsoft) 本文档描述了软件系统所采纳的关于本地.NET (C#)代码的编程风格指导规范。 立即下载

相关推荐

.net编码规范.doc

.net编码规范.doc.net编码规范.doc.net编码规范.doc

FxCop 设计规则

FxCop 设计规则 Posted on 2005-09-07 16:40 冰戈 阅读(193) 评论(0)  编辑 收藏 收藏至365Key 所属分类: .NET资料 <!--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:dc="http://purl.org/dc/elements/

deadshot123的专栏 2055

零度C#.NET编码命名规范.pdf

零度C#.NET编码命名规范.pdf,经典命名规范

.Net的编码规范

规则:编程时必须遵守的约定。 建议:编程时必须加以考虑的约定。 1 代码格式 【规则 1-1】全部代码使用TAB键缩进。 【规则 1-2】代码行的长度小于120个字符。 【规则 1-3】“{”放在行首,“}”新起一行也在行首。 【规则 1-4】不要在相关的一组类或者是一个模块中使用不同的代码格式。 【规则 1-5】成员按照一定的顺序,并且使用#region分组...

weixin_30610755的博客 414

C# 编码规范完整DOC版本.docx

C#语言规范(5.0版) C#语言规范主要有两个来源,即我们熟知的ECMA规范和微软的规范。 版权所有 Microsoft Corporation 1999-2012。保留所有权利。请将更正、建议及其他反馈信息发送至 csharp@http://www.wendangku.net/doc/0cec773369eae009591bec50.html

C#.NET编码规范整理文档[借鉴].pdf

C#.NET编码规范整理文档[借鉴].pdf

【基础编程】.NET开发编码规范

在.NET开发中,遵循编码规范能够提高代码的可读性、可维护性以及团队协作的效率。是否需要更具体的内容,如ASP.NET Core、WinForms或特定的框架实践?:使用全大写,单词之间用下划线分隔。:提取公共逻辑到独立的类或方法中。:优先考虑简洁的LINQ表达式。:使用常量或枚举替代。

u013136510的博客 1277

避坑指南:GROMACS模拟中.tpr、.xtc、.edr、.cpt文件你用对了吗?从生成到分析全流程解析

本文详细解析GROMACS分子动力学模拟中.tpr、.xtc、.edr、.cpt等核心文件的使用技巧,从文件生成到轨迹优化、能量分析的全流程避坑指南。重点介绍拓扑文件校验、轨迹格式选择、周期性边界处理等实战经验,帮助科研人员高效管理模拟数据并准确提取关键能量信息。

weixin_30631587的博客 118

C#.NET编码规范整理

C#.NET编码规范整理 一、 环境设置 首先去除VS开发环境中的一些选项如下: 粘贴时调整缩进 将类型的左大括号置于新行 将方法的左大括号置于新行 将匿名方法的左大括号置于新行 将控制块的左大括号置于新行 将“else”置于新行 将“catch”置于新行 将“finally”置于新行 复选框去掉. 二、 命名规范 1) 通用性 l ...

weixin_30426879的博客 237

Ubuntu本地部署CodeX编程助手:CLI配置全指南

本地AI编程助手是当前开发者关注的核心技术趋势,指在不依赖云端API、保障代码隐私前提下,于本地环境运行具备代码理解、多语言补全与知识库检索能力的智能辅助工具。其技术原理涉及模型加载、API网关编排、向量数据库集成及系统级资源调度,关键价值在于可控性、低延迟与合规性。典型应用场景包括企业内网DevOps提效、边缘设备嵌入式开发支持,以及敏感代码场景下的离线编程增强。本文聚焦Ubuntu系统下基于CLI的手动配置路径,深入解析Ollama服务注册、Node.js版本锁定、API Key环境隔离及Qwen2.5

weixin_26804345的博客 594

网格聚类 Grid Clustering/Grid-based Clustering

本文主要简单介绍了网格聚类的基本概念,优缺点,应用场景,建模时的注意事项,评价指标,实现方法,python示例和模型参数等。

JasonH2021的博客 4827

ASP.NET(C#) 編碼規範[整理讨论]

ASP.NET(C#) 編碼規範 [WebFlow Team] Ver1.0 Author:Scott.Fang 1. 目的... 2 2. 範圍... 2 3. 代碼格式... 3 4. 注釋規...

weixin_30591551的博客 100

文章详细介绍了进行DoIP(DiagnosticoverInternetProtocol)测试的完整过程,包括样件的正确接线、CANoe软件的环境配置、端口设置、VLAN配置、IP和MAC地址的设定

关于Tester和DUT的地址,其实最主要的就是DUT的IP、MAC和逻辑地址,如果不知道Tester的IP、MAC和逻辑地址,可以配置为与DUT同一网段的就可以。ps:最重的是知道DUT的IP、逻辑、MAC地址,如果有VLAN也需要知道,Tester的地址可以根据DUT地址进行设定,其余的值可根据DoIP的报文查到相关参数。ps:如果在通信中没有建立VLAN,但是源地址和目的地址都填写正确,此时就要考虑是否是遗漏了VLAN,建立一个VLAN,在重新试试是否可通信。此处与硬件连接是相对应的,要注意!

qq_40965861的博客 1128

DotNet常用工具二

.net工具.NET Tools Here are listed some of the existing companion tools for .NET development.Although quite comprehensive, this list is not exhaustive. You can submit new tools or report a dead link by

1103

微信小程序中使用画布canvas实现动态心电图绘制

近期,接了个项目,三端(小程序、PC、公众号)同步开发,PC端没的问题,以前一直做的就是PC端,但是小程序和公众号之前没有做过,只能通过这个项目,边做边学了。人家都说小程序用原生的特别难,大部分都用uniapp开发,说是这个方便快捷,还能写app呢,因为我们的项目,需要用到蓝牙采集数据、画布画仪表盘以及心电图等,所以我们不太敢用uniapp开发,硬着头皮开始用原生开发。开发的过程中,也遇到过很多问题,但是好在经过我们团队的不懈努力,问题基本都解决了。下面我就来分享一下,在小程序中,如何通过canvas。

穆雄雄的博客 3651

HBase批量导入工具:BulkLoad使用详解

HBase作为分布式NoSQL数据库,在大数据领域有着广泛应用。传统的数据写入方式(如Put操作)在面对海量数据导入时存在性能瓶颈。BulkLoad提供了一种高效的大批量数据导入方案,可以显著提高数据加载速度并降低集群负载。BulkLoad的核心原理和架构与传统写入方式的性能对比详细的使用方法和实现步骤性能优化技巧和最佳实践实际应用案例分析本文首先介绍BulkLoad的基本概念和原理,然后深入讲解其实现机制和关键技术。接着通过实际案例演示BulkLoad的使用方法,并分析性能优化策略。

大数据洞察的博客 1236

.NET 编码指南开源项目推荐

.NET 编码指南开源项目推荐 1. 项目基础介绍 本项目名为“DotNet-Coding-Guidelines”,是一个开源项目,旨在为.NET开发人员提供一系列的编码指南和最佳实践。这些指南不仅适用于.NET平台,很多原则也适用于其他编程语言。该项目主要由C#编程语言编写。 2. 项目的核心功能 项目的核心功能是收集和整理.NET平台上的编码规范,这些规范覆盖了变量命名、代码结构、异常处理、资...

gitblog_00345的博客 299

【MATLAB】工业传送带速度闭环控制与张力联合仿真

本文基于MATLAB/Simulink平台,构建了工业传送带速度闭环控制与张力联合仿真系统。通过搭建驱动模块、机械传动模块、检测模块和控制模块,实现了速度与张力的协同控制。采用双PID调节器分别整定速度与张力参数,经联合调试后系统性能良好:速度跟踪误差小于±0.03m/s,张力波动控制在±30N内,负载扰动恢复时间仅0.3秒。研究提供了从建模到参数优化的完整工程方案,可直接应用于课程设计或工业实践,有效解决了传送带运行中速度偏差与张力波动的协同控制难题。

unber的博客 78

C#编码规范的几个版本

C#编码规范 为了以后软件更加容易维护,还是有必要建立一套编码规范。发现这件事情早就有人在讨论和研究了:http://www.cnblogs.com/iouniuniu/archive/2004/03/19/3572.aspxhttp://blogs.msdn.com/ericgu/archive/2004/01/19/60315.aspx现在先对他们讨论的内容整理一下:发现有以下几个模板:1.M

bcdliang的专栏 1329

ABAP CDS 实体权限控制,从 DCL 到 PFCG 的完整运行逻辑

本文探讨了SAP S/4HANA开发中CDS View的权限控制机制。核心观点如下: CDS access control通过DCL语言实现数据实例级权限控制,而非替代传统PFCG权限体系,二者形成互补关系:PFCG控制功能入口权限,DCL控制数据可见性。 DDL定义数据结构,DCL定义访问规则。DCL通过角色映射将数据字段与PFCG授权对象关联,运行时自动将权限条件注入SQL查询,实现数据过滤。 访问控制行为特点: 无DCL role不会默认拒绝访问 权限检查通过减少结果集而非抛出错误实现 需配合@Acc

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 101

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

C#编码规范 (转贴)

C#编码规范 转自 一个春天Blog http://www.cnblogs.com/aspring/archive/2004/04/21/7001.aspx为了以后软件更加容易维护,还是有必要建立一套编码规范。发现这件事情早就有人在讨论和研究了:http://www.cnblogs.com/iouniuniu/archive/2004/03/19/3572.aspxhttp://blogs.msd

ChengZi的专栏 1450

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java、PHP、C#、Python等语言官方编码规范/代码规范整理合集

阿里巴巴Java开发手册(详尽版): https://yq.aliyun.com/download/2719 PHP编码规范(PSR规范): PHP FIG,FIG 是 Framework Interoperability Group(框架可互用性小组)的缩写,由几位开源框架的开发者成立于 2009 年,从那开始也选取了很多其他成员进来(包括但不限于 Laravel, Joomla, Drupa...

Tianyi_liang的博客 924

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: 关于iOS keychain
下一篇: 提搞网站访问速度可做哪些优化
fromdw
博客等级 码龄20年 14粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值