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

边表法

边表法是用来绘制填充一个面的,边表法的关键是边表和连接边表的扫描线。 对于边的描述利用边表数据结构,包含边与扫描线的交点x坐标,边的最大y坐标,这样可以知道边加入到哪些扫描线上,便还有一个指针来记录扫描线上其它边。 //边数据结构 #pragma once #ifndef __CAETZ__ #define __CAETZ__ #include "pch.h" #include "CPoin...

weixin_42376458的博客 2101

C#.NET编码规范整理

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

weixin_30426879的博客 237

概率论基础-严士健 第二版 习题与补充1.6答案

概率论基础-严士健 第二版 习题与补充1.6答案 1.不独立。 设有一均匀正八面体,其第1,2,3,4面染红色,第1,2,3,5面染白色,第1,6,7,8面染黑色,现在以A,B,C分别表示投一次正八面体出现红、白、黑的事件,则 P(A)=P(B)=P(C)=12.P(A) = P(B) = P(C) = \frac{1}{2}.P(A)=P(B)=P(C)=21​. P(ABC)=18=P(A)P...

weixin_42341993的博客 2515

IO多路转接 ——— select、poll、epoll

select是系统提供的一个多路转接接口。select函数的函数原型如下: 参数说明:参数timeout的取值:返回值说明:select调用失败时,错误码可能被设置为:fd_set结构与sigset_t结构类似,fd_set本质也是一个位图,用位图中对应的位来表示要监视的文件描述符。 调用select函数之前就需要用fd_set结构定义出对应的文件描述符集,然后将需要监视的文件描述符添加到文件描述符集当中,这个添加的过程本质就是在进行位操作,但是这个位操作不需要用户自己进行,系统提供了一组专门的接口,用

2021dragon的博客 7977

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

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

weixin_30591551的博客 100

电流模架构Bandgap设计与仿真

带隙基准作为集成电路中一个重要模块,被广泛应用在低压差线性稳压(LDO)、充电电池保护芯片和通信电路、射频收发器、flash存储器等多种模拟及数模混合集成电路中,并且是片上集成系统(SOC)芯片中不可或缺的部分,为整个芯片提供精确的电压参考点............

qq_50968231的博客 5万+

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

从零到一:基于GeneMark-ES/ET的新基因组注释实战指南

本文提供了一份基于GeneMark-ES/ET的新基因组注释实战指南。详细介绍了从环境搭建、数据准备到核心运行的全流程,重点解析了ES(从头预测)与ET(结合RNA-Seq证据)两种模式的选择与操作,并分享了Perl模块依赖、并行处理等常见问题的解决方案,帮助生物信息学研究者高效完成基因预测工作。

weixin_29266647的博客 209

汽车IVI中控开发入门及进阶(三十八):手机投屏HiCar开发

为了兼容这部分手机,车机端在向手机端发送USB控制命令字的同时,需要启动mDNS Server,广播车机端IP地址和HiCar SDK侦听的Server Socket端口(IP地址和端口在HiCar SDK初始化USB driver时,告知车机),在检测到手机断开USB连接时关闭mDNS Server。厂商在集成HiCar SDK开发HMI应用时,不可避免会使用到智能座舱的敏感权限,例如位置权限、摄像头权限、麦克风权限等,SDK初始化时,厂商HMI应用需要设置必要的车机参数供SDK使用。

码农17年的博客 1075

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

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

gitblog_00345的博客 299

perl 安装DBI和DBD

还可以从cpan.perl.org站点下载tar压缩文件形式的源代码发行版本,解压缩后,切换到相应的文件目录 cd DBI-1.54 perl Makefile.PL make make test make install 安装DBD时候 需要export ORACLE_HOME 验证安装: perldoc DBD::Oracle perldoc DBI 在线文档; perldoc -m

zhaoyangjian724的专栏 1754

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

使用STM32H7点亮RGB屏幕

希望本文能对你有所帮助!RGB屏幕是一种具有红、绿、蓝三种颜色通道的显示设备,通过控制每个通道的亮度,可以显示出丰富多彩的图像和动画。要使用STM32H7控制RGB屏幕,我们需要连接适当的引脚,并编写适当的代码来控制每个颜色通道的亮度。在主循环中,我们先点亮红色通道,然后延迟一段时间,接着点亮绿色通道,再延迟一段时间,最后点亮蓝色通道,并再次延迟。需要注意的是,示例代码中的延迟循环使用了一个简单的计数器实现,但实际应用中可能需要更精确的延迟方式,例如使用定时器中断或操作系统提供的延迟函数。

QoyOle的博客 924

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

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

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值