C#编码规范

【C#】——系统编码规范 【C#】——系统编码规范 开发程序时,往往会有很多人参与,为了时程序与代码风格标准化,以便于时每个参与才发的人员尽可能直观地查看和理解其他人编写的代码,需要在编码之前制定一套统一的编码规范。 下面介绍一套C#中常用的编码规范供大家参考。 1.数据库命名规范 1. 数据库 数据库命名以字母 db 开头(小写),后面加数据哭相关英文单词或缩写。 数据库名称 ... 阅读详情
编 写 人:     kkding
日    期:     2003-12-22
当前版本:     V 0.5


版本号

作者

日期

批准日期

标志

备注

0.5

kkding

2003-12-22


C


























注:C -创建;  M -修改;  D -删除;  A -添加

目录

1     目的.... 3
2     范围.... 3
3     规范内容.... 3
3.1       文件规范... 3
3.1.1       文件命名... 3
3.1.2       文件内容格式... 3
3.2       代码格式... 4
3.3       注释(Comment)规范... 5
3.3.1       模块(类)注释规范... 5
3.3.2       类属性注释规范... 6
3.3.3       方法注释规范... 6
3.3.4       代码间注释规范... 6
3.4       变量(Variable)命名规范... 6
3.4.1       程序文件(*.cs)中的变量命名规则... 6
3.4.2       控件命名规则... 8
3.4.3       常量命名规范... 9
3.4.4       类(Class)命名规范... 9
3.4.5       接口(Interface)命名规范... 10
3.4.6       方法(Method)命名规范... 10
3.4.7       命名空间(NameSpace)命名规范... 10
4     实施建议.... 10

1        目的


为了保证企业编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。
编码规范对于程序员而言尤为重要,有以下几个原因:
- 一个软件的生命周期中,80%的花费在于维护
- 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护
- 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码
- 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品
为了执行规范,每个软件开发人员必须一致遵守编码规范。每个人。

2         范围


适用于企业所有基于C#.NET平台的软件开发工作。

3         规范内容

3.1       文件规范

3.1.1     文件命名


与类名名称相同

3.1.2     文件内容格式


开头注释
引用
命名空间
类体
变量(代理事件):用#region 变量………#endregion包括
属性:用#region属性………#endregion包括
构造:
方法(事件的实现):用#region方法………#endregion包括

3.2       代码格式


u       所有的缩进为4个空格,以空格代替Tab 。选中”插入空格( P)”
        
u       在代码中垂直对齐左括号和右括号。
if(x==0)
              {
                   Response.Write("用户编号必须输入!");
              }
            不允许以下情况:
if(x==0) {
              
                   Response.Write("用户编号必须输入!");
              }
或者:
if(x==0){ Response.Write("用户编号必须输入!");}

u       为了防止在阅读代码时不得不滚动源代码编辑器,每行代码或注释在1024*800的显示频率下不得超过一显示屏
u       当一行被分为几行时,通过将串联运算符放在每一行的末尾而不是开头,清楚地表示没有后面的行是不完整的。
u       每一行上放置的语句避免超过一条。
u       在大多数运算符之前和之后使用空格,这样做时不会改变代码的意图却可以使代码容易阅读。
例:
        int j = i + k;
而不应写为
    int j=i+k;
u       将大的复杂代码节分为较小的、易于理解的模块。
u       编写 SQL 语句时,对于关键字使用全部大写,对于数据库元素(如表、列和视图)使用大小写混合。
u       将每个主要的 SQL 子句放在不同的行上,这样更容易阅读和编辑语句,例如: SELECT FirstName, LastName
                             FROM Customers
                WHERE State = 'WA'

3.3       注释(Comment)规范


注释规范包括:模块(类)注释规范、类的属性、方法注释规范、代码间注释

3.3.1     模块(类)注释规范


模块开始必须以以下形式书写模块注释:
///<summary>
///定义某某类的方法
///</summary>
///<see cref="Author">作者 </see>
///<see cref="Email">email@e-citycard.com </see>
///<see cref="Data">2003-12-17</see>
如果模块有修改,则每次修改必须添加以下注释:
         ///<remark>备注版本修改信息,修改了那些,时间,每次依次增加remark</remark>

3.3.2     类属性注释规范


在类的属性必须以以下格式编写属性注释:
         /// <summary>
         ///属性说明
/// </summary>

3.3.3     方法注释规范


在类的方法声明前必须以以下格式编写注释
         /// <summary>
         /// 说明:<对该方法的说明>
         /// </summary>
         /// <param name="<参数名称>"><参数说明></param>
              /// <returns> /<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义>
/// </returns>

3.3.4     代码间注释规范


代码间注释分为单行注释和多行注释:
         单行注释:
//<单行注释>
         多行注释:
         /*多行注释1
          多行注释2
          多行注释3*/
代码中遇到语句块时必须添加注释(if,for,foreach,……),添加的注释必须能够说明此语句块的作用和实现手段(所用算法等等)。

3.4       变量(Variable)命名规范

3.4.1     程序文件(*.cs)中的变量命名规则


       
       程序中变量名称 = 变量的前缀 +代表变量含意的英文单词或单词缩写。

1.  类模块级的变量类型的缩写作前缀
public class hello
{
        private string s_Name;
        private DateTime dt_Date;

}
2.  类的属性所对应的变量,采用属性名前加类型的缩写作前缀前缀的形式
public class hello
{
        private string s_Name;
        public string Name
        {
               get
{
        return m_Name;
}
}
}
3.  过程级的变量不使用前缀
public class hello
{
        void say()
        {
               string SayWord;
}
}
4.  过程的参数使用“p_”作为参数
        public class hello
        {
               void say(string p_SayWord)
               {
               }
        }

补充说明:
        针对异常捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为e;
如果有冲突的情况下,可以重复e,比如:ee。
Try
{
        //your code
        try
{
       //code
}
catch(Exception ee)
{
       //your code
}
}
catch(Exception e)
{
        //your code
}
补充:如果捕获异常不需要作任何处理,则不需要定义Exception实例
例:
try
{
        //your code
}
catch( Exception )
{
}

5.  鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。每个单词的第一个字母都是大写.
6.  即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如 i 或 j。
7.  在变量名中使用互补对,如 min/max、begin/end 和 open/close。
8.  不要使用原义数字或原义字符串,如 for( i = 1,i< 7;i++)。而是使用命名常数,如 for( i = 1,i< NUM_DAYS_IN_WEEK ; i++) 以便于维护和理解。

3.4.2     控件命名规则



控件命名 =Web控件缩写前缀  + “_” +变量名


控件

缩写

Label

lbl

TextBox

txt

CheckBox

chk

Button

cmd

ListBox

lst

DropDownList

drp

等等


3.4.3     常量命名规范


常量名也应当有一定的意义,格式为 NOUN 或 NOUN_VERB。常量名均为大写,字之间用下划线分隔。
例:
        private const bool   WEB_ENABLEPAGECACHE_DEFAULT           = true;
        private const int    WEB_PAGECACHEEXPIRESINSECONDS_DEFAULT = 3600;
        private const bool   WEB_ENABLESSL_DEFAULT                 = false;

注:
变量名和常量名最多可以包含 255 个字符,但是,超过 25 到 30 个字符的名称比较笨拙。此外,要想取一个有实际意义的名称,清楚地表达变量或常量的用途,25 或 30 个字符应当足够了。

3.4.4     类(Class)命名规范


1.    名字应该能够标识事物的特性。
2.    名字尽量不使用缩写,除非它是众所周知的。
3.    名字可以有两个或三个单词组成,但通常不应多于三个。
4.    在名字中,所有单词第一个字母大写,缩写都要大写。
               例如       IsSuperUser,包含ID的,ID全部大写,如CustomerID。
5.    使用名词或名词短语命名类。
6.    少用缩写。
7.    不要使用下划线字符 (_)。
例:
public class FileStream
public class Button
public class String
 
 

3.4.5     接口(Interface)命名规范


      和类命名规范相同,唯一区别是  接口在名字前加上“I”前缀
       例:
       interface IDBCommand;
       interface IButton;

3.4.6     方法(Method)命名规范


      和类命名规范相同。
另:方法开头尽量使用e文动词表示,
如:GetMoney , SetMoney

3.4.7     命名空间(NameSpace)命名规范


      和类命名规范相同。

4         实施建议


l         先对编码人员进行“专题”培训,让他们掌握此编码规则。
l         系统设计人员、编码人员、测试人员可以较好的建议,适当地修改完善《C#编码规范》
l         对本文档修改要做出记录,变更版本号。
Hypermesh2021实战:塑料圆盘结构化网格划分全流程(附避坑指南) 本文详细介绍了使用Hypermesh2021进行塑料圆盘结构化网格划分的全流程操作,包括几何预处理、网格生成策略及质量验证。特别针对工程实践中常见的12个典型问题提供解决方案,帮助用户提升CAE仿真分析的精度和效率。 阅读详情

相关推荐

矢量量化的基本原理:高效数据压缩与信息检索的关键矢量量化(Vector Quantization,简称VQ)是一种数据压缩和信

此外,在矢量量化过程中,可能会引入一定的信息损失,对一些精细特征的表示可能存在一定的误差。它通过将高维数据映射到低维码本空间中,并将相似的数据映射到相同的码本向量中,实现对数据的高效表示和存储。最重要的是,矢量量化可以用于数据的检索和分析,提供了高效的数据查询和处理手段。通过使用码本索引,我们可以高效地存储和检索大量的数据。在图像处理中,矢量量化可以用于图像压缩,将复杂的图像数据转化为较少的码字,实现图像的存储和传输。矢量量化通过将连续的高维数据分割并映射到有限的码本集合中,实现数据的离散表示和压缩。

m0_70886513的博客 1373

C# 编码规范

本文是参考阿里的Java编码规范修改的C#版本,自整理并编写,欢迎指正! 编程规约 (一)命名规约 1.【强制】代码中当且仅当私有成员可以使用下划线开始 反例:public string _name 2.【强制】代码中的命名严禁使用拼音与英文混合的方式,更不能允许直接使用中文的方式。 说明:正确的英文拼写和语法,可以让读者易于理解,避免歧义。注意,即...

dingtianzhong7528的博客 574

从零开始之stm32之CAN通信

CAN通信极简教程(小白友好版),从小白的视角了解并实现简单的STM32F103的CAN通信,直接上手。

qq_30993593的博客 1308

【编码规范篇】 C#编码规范 代码规范总结,包括命名规范,代码规范 注释规范等_c(1)

【代码】【编码规范篇】 C#编码规范 代码规范总结,包括命名规范,代码规范 注释规范等_c(1)

2401_84170414的博客 1413

Ubuntu22.04 网络图标消失与连接故障排查指南(附实战修复流程)

本文详细介绍了Ubuntu22.04系统中网络图标消失与连接故障的排查与修复方法。通过ifconfig、dhclient等命令诊断问题,提供从紧急恢复网络连接到深度排查的完整解决方案,帮助用户快速恢复网络功能并预防类似问题再次发生。

weixin_28481133的博客 287

新手必看!Cisco Packet Tracer 8.2从安装到完成第一个局域网实验(附常见问题解决)

本文为网络新手提供了Cisco Packet Tracer 8.2的完整入门指南。从官方下载安装、界面熟悉,到核心的拖拽设备、连线、配置IP地址三步操作,手把手教你完成第一个局域网组网实验。文章重点讲解了如何通过Ping命令验证连通性,并附带了连线错误、IP配置不当等常见问题的解决思路,帮助初学者快速上手这款强大的思科模拟器。

android的专栏 869

C#基本开发规范

一、c#语言开发规范 1. 命名规范 A.类 【规则1-1】使用Pascal规则命名类名,即首字母要大写。 class Test { ... } 【规则1-2】使用能够反映类功能的名词或名词短语命名类。 【规则1-3】不要使用“I”、“C”、“_”等特定含义前缀。 【规则1-4】自定义异常类应以Exception结尾。 class TestException { ... } 【规则1-5】文件名要能反映类的内容,最好是和类同名。 B.类字段(类成员) 【规则...

m0_56449543的博客 1786

PICO SCOPE 二次开发

基于C#开发一个简单的PICO示波器的上位机工作,与MCC600运动控制卡一起,实现数据自动采集

nixoncheng的博客 1148

全面的C#编码规范整理

要作为一名合格的开发者,最基本的素质就是要做到编码规范,从小我们就接受教导“字如其人”,而写代码亦是如此,良好的代码风格,彰显了个人的工作素养。而良好的代码规范,能够帮助我们进行更好的团队协作,它能方便代码的交流和维护;不会影响编码的效率,不与大众习惯冲突;使代码更美观、阅读更方便;使代码的逻辑更清晰、更易于理解。 那为什么要整理这个规范呢? 最近社区群里有在讨论C#的编码规范,而网络上也没有一些全面的规范文档,所以我就结合微软官方、Resharper和stylecop的规范,以及.

戴翔的技术博客 4115

数仓建模—数据语义层

如今,企业产生大量数据,需要以正确的方式进行分析才能做出重要决策。数据可能来自多个来源并采用不同的格式,这使得清楚地了解其含义和重要性成为一项挑战。这就是语义层的用武之地。语义层存在于数据仓库和最终用户使用的应用程序之间。它为用户提供了简化且一致的数据视图,无论其基础数据源的复杂性如何。该逻辑层有助于映射物理数据结构以创建概念数据模型。它定义了数据元素之间的所有规则和关系,并以业务术语提供了数据的通用词汇表。然后,用户可以轻松地与数据进行交互,而无需了解其数据源的技术知识。

7万+

基于simulink的预测电流控制策略的三相逆变器仿真

本文详细介绍了在Simulink中实现基于预测电流控制策略的三相逆变器仿真方法。主要内容包括:准备工作(安装必要软件及工具箱)、构建三相逆变器基础模型、设计预测电流控制器(包含状态空间建模和控制器设计)、实现控制逻辑、添加示波器观察输出、配置仿真参数以及运行仿真分析结果。通过MATLAB代码示例和Simulink模块说明,展示了如何选择最优开关状态来最小化电流误差。该仿真方法为研究快速响应、高精度的逆变器控制提供了实用工具,但需注意实际应用中可能需要的调试工作。

amy_mhd的博客 276

【编码规范篇】| C#编码规范 代码规范总结,包括命名规范,代码规范 注释规范等

在我们程序员日常开发的过程中,会编写代码是一个最基本且常规的操作。而作为一名合格的软件工程师,出产物就应该具备工程的健壮性和美观性,因此编码规范是作为软件工程师的职业素养。但是就编码规范而言,可能大多数程序员都是按照自己的长久习惯进行代码编写,并没有遵循一个约定好的编码规范。所以本篇就来对C#中的编码规范做一个详细的总结整理,并对一些超级常用的做一个重点解析!对于编程而言,大多数语言的编码规范基本上是遵循一些相同的规范标准的,除去少些个语言有一些特殊用法之外。

努力前行,总会成为自己心中的那道光 4万+

华为OD面试手撕真题 【合并相邻且相等的元素】多语言题解

华为OD面试高频手撕真题【合并相邻且相等的元素】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。

qq_45776114的博客 549

强烈推荐:C#编码规范手册

要作为一名合格的开发者,最基本的素质就是要做到编码规范,从小我们就接受教导“字如其人”,而写代码亦是如此,良好的代码风格,彰显了个人的工作素养。而良好的代码规范,能够帮助我们进行更好的团队协作,它能方便代码的交流和维护;不会影响编码的效率,不与大众习惯冲突;使代码更美观、阅读更方便;使代码的逻辑更清晰、更易于理解。 那为什么要整理这个规范呢? 最近社区群里有在讨论C#的编码规范,而网络上也没有一些全面的规范文档,所以我就结合微软官方、Resharper和stylecop的规范,以及曾经网路上的一些规范,整理

dotNet全栈开发 5246

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C#编码规范简介

本博客(http://blog.youkuaiyun.com/livelylittlefish)贴出作者(三二一、小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!                                                                              C# 编码规范                           

学习,思考,记录,分享。 5993

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C#开发编码规范

C#开发编码规范  注记: Pascal 大小写形式——所有单词第一个字母大写,其他字母小写。 Camel 大小写形式——除了第一个单词,所有单词第一个字母大写,其他字母小写。 类名使用Pascal大小写形式 public class HelloWorld { … } 方法使用Pascal大小写形式 public class HelloWorld { void SayHello(string name) { … } } 变量和方法参数使用Camel 大小

ghoulvspol的安全生活 676

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: C#编码规范的几个版本
下一篇: 在ASP.NET程序中存储和调用word文件
bcdliang
博客等级 码龄24年 1粉丝 15原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值