(转)c# 命名约定

C#基础-编程命名规范 C#编程命名规范 阅读详情

1、命名约定

Pascal和Camel命名约定

编程的命名方式主要有Pascal和Camel两种(Pascal:每个单词的首字母大写,例如ProductType;Camel:首个单词的首字母小写,其余单词的首字母大写,例如productType)


以下是一些常用的C#成员及其推荐命名方法:

标志符

规则

实例与描述

类class

Pascal

Application

枚举类型enum

Pascal

记住,是以Pascal命名,切勿包含Enum,否则FXCop会抛出Issue

委托delegate

Pascal

以Pascal命名,不以任何特殊字符串区别于类名、函数名

常量const

全部大写

全部大写,单词间以下划线隔开

接口interface

Pascal

IDisposable 注:总是以 I 前缀开始,后接Pascal命名

方法function

Pascal

ToString

命名空间namespace

Pascal

以.分隔,当每一个限定词均为Pascal命名方式,比如:

using ExcelQuicker.Framework

参数

Camel

首字母小写

局部变量

Camel

也可以加入类型标识符,比如对于System.String类型,声明变量是以str开头,string strSQL = string.Empty;

数据成员

Camel

以m开头+Pascal命名规则,如mProductType(m意味member)

属性

Pascal

 

 

1.1、局部变量命名

在primitive的局部变量命名时,使用Camel命名规则,

比如:int type = 0;

double count = 0;

…

对于string类型定义,通常使用str前缀+Pascal命名的方式,

比如string strSql = ""; //这是一种典型的命名SQL语句字符串的方式。

而对于此外的类型对象定义,通常的做法是使用obj前缀+Pascal命名的方式,来告知我们这个变量是一个对象。或者也可以直接使用类名的Camel命名规则。

比如:Application objApplication = new Application();
            Application application = new Application();

 

1.2、参数命名

Camel命名规则,首字母小写

 

1.3、类数据成员/属性命名

数据成员命名以Camel命名方式,而属性以Pascal命名。通常如果数据成员与属性成对的话,数据成员与属性的命名区别仅在于变量名的第一个字母是小写还是大写。

比如

class Appcalition

{

        private ArrayList worksheetCollection = new ArrayList();

        public ArrayList WorksheetCollection

        {

            get

            {

                return this.worksheetCollection;

            }

        }

}

另外,类的成员数据/方法调用时,应该加上this限定符,this在编辑环境中是蓝色的,更利于我们区分局部变量、参数或静态变量,并且利于FXCop检测区分。(如果使用FxCop扫描和检测代码的话)

 

1.4、命名空间命名

在dot之间的各限定字符串符合Pascal格式

 

1.5、委托缩写

委托的命名方式我常常以Pascal命名,并且在命名的后面加EventHandler

比如public delegate void MouseEventHandler (object sender, MouseEventArgs e);    //用于处理与鼠标相关的事件或委托

对于自定义的委托,其参数第一个建议仍然使用object sender,sender代表触发这个时间或委托的源对象。而第二个参数继承于EventArgs类,并且在派生类中实现自己的业务逻辑。

 

1.6、自定义异常类

自定义异常类以Exception结尾,并且在类名中能清楚的描述出该异常的原因。比如NotFoundFileException,描述出了某个实体(文件、内存区域等)无法被找到。

1.7、枚举

枚举的命名是Pascal命名,不需要在枚举中加入Enum,枚举的名称能清楚的表明该枚举的用途。

 

1.8、常量命名

全部大写,单词间并且以下划线间隔,如public const int LOCK_SECONDS = 3000; 虽然在MSDN中常量的命名推荐使用Pascal,但是从C++沿袭的命名规则来看,将常量全部大写更加能清楚的表示常量与普通变量之间的区别。

 

1.9、命名缩写

在一般情况下,不推荐缩写命名,不要担心变量命名长,长的变量名能使变量的意义更加清晰,其实从长变量名的负面作用三,因为Ctrl+C和Ctrl+V加上在VS中的智能感知,其负面追用已经很小。变量命名的原则是,尽最大努力让其他人在看到我们的变量/函数/…等的第一时间,大概能猜出它是做什么的。

比如:int productTypeCount = 0; //我们在第一时间就能知道它是记录产品的数量的变量

而对于糟糕的命名方式:int prodTypeCount = 0; //它是productTypeCount的简写,我们一部分人也许知道prod是product的缩写,但是每人能保证所有的人都知道它。我个人认为:最优秀的代码它本身就是注释。作为一流的程序员。并不仅仅实现功能,而是要让我们的代码更加优美,具备让他人维护或今后扩充的能力。作为现在的业务系统,其门槛的准入水平已大大降低,实现功能上的需求已没有什么难度,但是高手和菜鸟的区别在于,高手的代码通俗易懂,在整个编码的过程中,不仅能考虑到性能、还会考虑代码可读性和维护性。

1.10、数据库命名

数据库的字段、表名的命名都推荐采用Pascal命名方式,尽量不采用缩写。当然,使用长的字段名、表名,可能会使SQL语句的编写带来负面影响。我推荐大家可以使用一些ORM,ORM的性能肯定不会比直接写SQL的好,但是如果做业务系统,更重要的是系统多久能交付用户使用,ORM不仅使开发时间可以缩短不少,并且在后期的维护上也比直接写SQL便利很多。

2、注释规范

2.1、文件头部注释

在代码文件的头部进行注释,这样做的好处在于,我们能对代码文件做变更跟踪。在代码头部分标注出创始人、创始时间、修改人、修改时间、代码的功能,这在团队开发中必不可少,它们可以使后来维护/修改的同伴在遇到问题时,在第一时间知道他应该向谁去寻求帮助,并且知道这个文件经历了多少次迭代、经历了多少个程序员的开发和修改。

样本:

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

** 作者: Eunge

** 创始时间: 2004-6-8

** 修改人:Lucy

** 修改时间:2004-12-9

** 修改人:Lucy

** 修改时间:2005-01-29

** 描述:

**    主要用于产品信息的资料录入,…

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

 

2.2、函数、属性、类等注释

请使用///三斜线注释,这种注释是基于XML的,不仅能导出XML制作帮助文档,而且在各个函数、属性、类等的使用中,编辑环境会自动带出注释,方便你的开发。以protected,protected Internal,public声明的定义注释都建议以这样命名方法。

例如:

/// <summary>

/// 用于从ERP系统中捞出产品信息的类

/// </summary>

class ProductTypeCollector

{

       …

}

 

2.3、逻辑点注释

在我们认为逻辑性较强的地方加入注释,说明这段程序的逻辑是怎样的,以方便我们自己后来的理解以及其他人的理解,并且这样还可以在一定程度上排除BUG。在注释中写明我们的逻辑思想,对照程序,判断程序是否符合我们的初衷,如果不是,则我们应该仔细思考耀修改的是注释还是程序了…

 

3、排版

我的排版原则与建议:

1、 每行语句至少占一行,如果语句过长(超过一屏),则该语句断为两行显示;

2、 把相似的内容放在一起,比如数据成员、属性、方法、事件等,并适当的使用#region…#endregion,我最喜欢把机器生成的代码都放在一个#region里面,比如在编写ASP.NET程序时,对应自动产生的控件定义,我常用#region Automatic Generated Web Components … #endregion把他们框住

3、 使用空格,

(1)       双目操作符的前后加空格(+, =, && 等),index = index + 1;

(2)       单目操作符前加空格(!, ++, ~ 等), index ++;

(3)       逗号、分号只在后面加空格

4、 使用空行,在一段功能代码、或者函数、属性之间插入空行,这样会很直观。

在Visual Studio 2005中,其实已经带有代码格式化这样的功能,快捷键是Ctrl+K -> Ctrl+D。

4、界面控件命名

我的建议是使用默认控件名作为前缀,前缀名称全部小写,这样的好处是不必为未知的控件统一命名方式发愁,比如对于Label标签控件,有的人用缩写lbl,有的人用lab,有的人用lb。这样其实仍然是避免使用缩写,有的时候仍然会使命名变得冗长,但是命名更加能反应出变量的意义,并且各个开发人员也能更好的执行,因为他们不需要去背记各个变量的缩写。

protected System.Web.UI.WebControls.Button buttonQuery;

protected System.Web.UI.WebControls.DropDownList dropdownlistProductType;

protected System.Web.UI.WebControls.TextBox textboxManufactureDate;

 

5、代码可读性一些建议

(1)注意运算符的优先级,我们应该尽量使用括号明确表达式的操作顺序,避免使用默认优先级,给我们以及维护人带来困扰

(2)避免使用不易理解的数字,用有意义的标识来替代(枚举和常量)

比如:

if(productType == 0)

       …

else if (productType == 1)

       …

(不推荐使用)

if(productType == ProductType.CD)

       …

else if (productType == ProductType.DVD)

       …

(推荐使用)

 

(3)在界面层中尽量使用异常处理try语句,不要将系统级别的错误直接暴露给用户,而更应该的是把系统抛出的错误信息记录到LOG日志文件中去,告诉用户友好的提示信息

在Visual Studio 2005里面,有代码布局格式化功能,蛮有用的。其实代码的规范是为了使系统具有整体一致的编码风格,以使后期维护人员能更快的读懂代码并进行维护。我认为代码规范有其必要性,但不能因为规范而规范,从开发而言,开发是为了更快的做出稳定的系统,而稳定的系统是为了给公司带来受益。开发人员、项目管理人员都应该更多的从项目经营的角度出来,同时站在公司、客户的角度考虑问题,而不是因为代码而代码。

C#基础学习之变量命名规约 在学习C#编程语言的过程中,变量是一个非常重要的概念。变量是用来存储数据的容器,可以是数字、文本、布尔值等。为了提高代码的可读性和维护性,在命名变量时需要遵守一定的规则。通过遵守变量命名规约,我们可以使代码更易读、易于理解和维护。良好的命名习惯是写出高质量、可维护的代码的关键之一。希望本文对您学习C#基础编程有所帮助!在上面的代码中,我们声明了三个变量:studentName、age和averageScore。这些变量名具有可读性,能够准确地描述变量的含义。C#基础学习之变量命名规约。 阅读详情

相关推荐

C#操作手册:命名规范 .NET

遵循一致的命名约定可以提高代码的可读性和可维护性,使其他开发人员更容易理解和修改代码。在C#开发中,采用有意义的命名、使用驼峰命名法、帕斯卡命名法和全大写字母表示常量,以及使用合适的前缀来命名布尔类型变量,都是编写清晰、一致且易于理解的代码的有效方法。类名使用帕斯卡命名法,变量和方法名使用驼峰命名法,并且常量使用全大写字母表示。在C#开发中,良好的命名规范对于代码的可读性和可维护性至关重要。本文将详细介绍一些常用的命名规范和最佳实践,以帮助开发人员编写清晰、一致且易于理解的代码。

XsfFsharp的博客 531

C#.NET编程规范

1、命名约定Pascal和Camel命名约定编程的命名方式主要有Pascal和Camel两种(Pascal:每个单词的首字母大写,例如ProductType;Camel:首个单词的首字母小写,其余单词的首字母大写,例如productType)以下是一些常用的C#成员及其推荐命名方法:  标志符

fenghmlucker的专栏 1144

C#编程命名规范实践指南

本文还有配套的精品资源,点击获取 简介:命名规范对于提高C#代码的可读性和团队协作的顺畅度至关重要。本文档涵盖了类、接口、方法、变量、常量、枚举等的命名规则。遵循.NET的命名规范有助于代码的专业化和可读性,同时减少错误。文档还包括了私有字段、命名空间和文档注释的格式化建议。通过阅读相关培训文档,开发者可以深入学习并实践这些规范,以提高个人的编程技能。 1. 命名规范...

weixin_28771751的博客 1219

C#操作手册(一):命名规范

在项目研发中你是否注意编码命名规范? 代码规范在研发项目团队中有着重要作用,团队统一代码规范,有助于提升代码可读性以及工作效率。 代码规范主要包括命名、版式、注释等几个方面: 其中命名包括变量、类、方法、文件名、数据库、表、字段、接口等方面。 版式包括缩进、换行、对齐、大括号、循环体、逻辑判断等方面。 注释包括包注释、文件注释、类注释、方法注释、参数注释、变量注释、代码片段注释等。 那么微软官方本身也是拟了一些草稿规范的,传送门:C# 6.0 草稿规范,拜读了官网后,感觉就是一个标准的官方发言,然后分段

熊泽-学习中的苦与乐 3920

全自动数据分析 - Claude Code Sub-Agents:自动化数据分析工厂

别忘了!claude code也是agent框架,类似langgraph,crewAI,autogen等等agent框架。我改造claude code搞一个数据分析智能体AI。试试看行不行!:让数据分析变得像聊天一样简单!

liangdabiao的博客 1072

Edge主页被2345劫持?手动清理注册表与组策略的完整方案

浏览器主页劫持是Windows系统中常见的恶意篡改行为,其原理是通过修改注册表、快捷方式、组策略等多处系统配置,强制锁定浏览器启动页。这类劫持不仅影响上网体验,还可能带来隐私泄露和恶意软件感染风险。在安全防护与系统优化场景中,掌握手动清理主页劫持的技能至关重要。本文针对Edge主页被2345导航劫持的问题,深入解析劫持入口,提供从快捷方式、注册表到组策略的逐层清理步骤,并给出防复发策略,帮助用户彻底摆脱顽固劫持。

weixin_30582943的博客 380

C# 命名的基本约定【转】

C# 命名的基本约定【转】 要使用可以准确说明变量/字段/类的完整的英文描述符,如firstName。对一些作用显而易见的变量可以采用简单的命名,如在循环里的递增(减)变量就可以被命名为” i ”。 要尽量采用项目所涉及领域的术语。 要采用大小写混合,提高名字...

261

Windows10 Qt下用MINGW 编译VTK-8.1.0

1. 材料准备(1) 下载VTK-8.1.0: https://www.vtk.org/download/(2) 下载TIFF库: http://gnuwin32.sourceforge.net/packages/tiff.htm(直接安装即可,注意选择路径不包含中文字符)2. 安装: (1) cmake配置: a. Module下配置:勾选下图所示的六项 b. Build 配置:勾选这里能够在b...

hit1524468的专栏 3891

C# 命名规则和约定 【代码之美系列】

🎀拥有良好的编码习惯和规范可以让代码更赏心悦目。团队中的每一个人,对规范的理解是不统一的,任何团队开发中都需要规范,有统一的代码规范,肯定会事半功倍,方便维护。拒绝屎山代码从你做起,对,是从你做起。🤣。

李赛赛的专栏 1267

【环境搭建】使用openSfM+MVSNet重建稠密点云

本帖详细介绍了如何使用openSfM+MVSNet对真实采集的数据进行稀疏重建与稠密重建,并针对一些真实场景下可能遇到的问题进行了整理。

YuhsiHu的博客 1971

UI渲染顺序:合批为何被拆碎?

在 Hierarchy 中,避免出现:Image(列表1) → Text(列表1) → 特效 → Image(列表2) → Text(列表2)…若可行,在逻辑上把布局组织成“同类元素集中”:例如:列表行中,Image 集中、Text 集中;或者接受 Text 本身就拆出一批,关键是不要在 Text 中间再插入别的材质。现实中不一定能做到完美的“所有 Image 连在一起”,但你会有一个意识:同一 Canvas 内,如果你把不同材质的元素交错穿插,

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 85

windows C#-标识符命名规则和约定

标识符是分配给类型(类、接口、结构、委托或枚举)、成员、变量或命名空间的名称。

王马的博客 1022

Android SystemUI——初始化流程(三)

1、Android 系统在启动之后,首先会Zygote进程,Zygote进程又会进一步启动 SystemServer进程,它会启动各种系统所需要的服务,在监听AMS启动完毕之后,还会启动SystemUIService。2、在启动SystemUIService服务之前,系统首先会创建SystemUI对应的进程,获取SystemUIAppComponentFactory实例对象,调用instantiateApplicationCompat创建SystemUIApplication实例对象并设置回调方法。

小旭的专栏 1157

C# 代码约定 【代码之美系列】

🎯对于在开发团队中维护代码可读性、一致性和协作至关重要。遵循行业实践和既定准则的代码更易于理解、维护和扩展。大多数项目通过代码约定强制要求样式一致。和项目并不例外。在本系列文章中,你将了解我们的编码约定和用于强制实施这些约定的工具。你可以按原样采用我们的约定,或修改它们以满足团队的需求。🎀拥有良好的编码习惯和规范可以让代码更赏心悦目。团队中的每一个人,对规范的理解是不统一的,任何团队开发中都需要规范,有统一的代码规范,肯定会事半功倍,方便维护。拒绝屎山代码从你做起,对,是从你做起。🤣。

李赛赛的专栏 1234

西安交通大学软件学院——分布式系统练习题(综合题)

摘要:本文探讨了分布式系统的核心特性与关键问题。首先阐述了分布式系统的8种透明性特性,包括访问、定位、迁移等。然后通过具体案例分析了分布式事务的回滚机制、域名解析的迭代与递归过程、不同分布式系统的异同比较。重点讨论了RPC通信中客户端/服务器崩溃的处理方法,包括消灭、再生和到期三种策略。最后介绍了Lamport时间戳算法在进程通信中的应用及问题解决方案。全文涵盖了分布式系统设计中的透明性、可靠性、一致性等核心问题。

qq_73044452的博客 204

[QMT量化交易小白入门]-三十七、QMT中如何使用类似于通达信中的VBA函数(量化python代码解析)

这段代码主要围绕着在QMT环境中实现类似通达信VBA函数的功能展开,核心功能是基于RSI指标来判断股票的买卖时机,并根据持仓情况进行相应的交易操作。class G():passg = G()这里定义了一个空类G,并创建了该类的实例g。这个实例g将作为全局变量来存储一些在整个程序运行过程中需要共享的数据,例如除复权类型、股票代码、目标数量等。1、使用VBA开发策略时,参数固化的问题会带来一些限制,比如无法修改MA函数的周期参数,只能使用固定周期。

木头大左的博客 1690

C# 标识符命名规则和约定

标识符可以包含 Unicode 字母字符、十进制数字字符、Unicode 连接字符、Unicode 组合字符或 Unicode 格式字符。标识符是分配给类型(类、接口、结构、记录、委托或枚举)、成员、变量或命名空间的名称。时,使用 pascal 大小写(“PascalCasing”)。它们使得读取器可以通过基于之前的经验进行的假设更快地理解代码。它们为代码创建一致的外观,以确保读取器专注于内容而非布局。枚举类型对非标记使用单数名词,对标记使用复数名词。主要用于与使用其他语言声明的标识符的互操作性。

让每一个想学习编程的人,都能学会,都能看懂,看了都有收获! 1207

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

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

C# 常见的代码命名约定及其用途

C# 标识符名称 - 规则和约定

qq920764029的博客 580

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

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

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

命名约定

1、命名约定Pascal和Camel命名约定编程的命名方式主要有Pascal和Camel两种(Pascal:每个单词的首字母大写,例如ProductType;Camel:首个单词的首字母小写,其余单词的首字母大写,例如productType)以下是一些常用的C#成员及其推荐命名方法:标志符规则实例与描述类classPascalApplication枚举类型enumPascal记住,是以...

dianbiaoqiao5697的博客 191

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C#命名约定

转自 “http://blog.163.com/2sws/blog/static/1791024920098434529583/”1、命名约定Pascal和Camel命名约定编程的命名方式主要有Pascal和Camel两种(Pascal:每个单词的首字母大写,例如ProductType;Camel:首个单词的首字母小写,其余单词的首字母大写,例如productType)以下是一些常

zcheva的专栏 816

【.NET Core】常见C#代码约定

代码标准对于在开发团队中维护代码可读性、一致性和协作至关重要。遵循行业实践和既定准则的代码更易于理解、维护和扩展。大多数项目通过代码约定强制要求样式一致。本文我们将讨论编码约定和用于强制实施这些约定的工具。

记录总结工作过往 1516

C# 命名的基本约定

要使用可以准确说明变量/字段/类的完整的英文描述符,如firstName。对一些作用显而易见的变量可以采用简单的命名,如在循环里的递增(减)变量就可以被命名为 ” i ”。 要尽量采用项目所涉及领域的术语。 要采用大小写混合,提高名字的可读性。为区分一个标识符中的多个单词,把标识符中的每个单词的首字母大写。不采用下划线作分隔字符的写法。有两种适合的书写方法,适应于不同类型的标识符: Pa

Beginner 1542

C#编码约定

虽然C#语言规范未定义语言规范,但编码约定可实现以下目的: 它们为代码创建一致的外观,以确保读取器专注于内容而非布局。 它们使得读取器可以通过基于之前的经验进行的假设更快地理解代码。 它们便于复制、更改和维护代码。 它们展示 C# 最佳做法。 命名约定在不包括 using 指令的短示例中,使用命名空间限定。 如果你知道命名空间默认导入项目中,则不必完全限定来自该命名空间的名称。 如果对于单行来说

如沐清风 575

C#编程风格约定

我一直自认为,自己在编程功力还算说的过去,昨天一个老师看了我以前写的代码,说功力还需加强(当时我很郁闷,其实我知道的可能还比他多)。很多时候我们 都太注重高水平、尖端的技术,其实很多公司叫你写一段简单的程序,可能就会决定要不要你。他们是从代码中看出了你的阅历,你的水平。这些水平不是体现你的 尖端技术(况且很多新技术都是可以学的),而是你的风格,或习惯,而这些恰恰是经过很长的阅历积累起来的。 ...

weixin_33714884的博客 354

C# 编码约定

命名约定 如果对于单行来说过长,则可以在点 (.) 后中断限定名称,如下面的示例所示。 布局约定 智能缩进、4 字符缩进、制表符保存为空格. 每行只写一条语句。 每行只写一个声明。 如果连续行未自动缩进,请将它们缩进一个制表符位(四个空格)。 在方法定义与属性定义之间添加至少一个空白行。 使用括号突出表达式中的子句,如下面的代码所示 ...

Yan2017的博客 309
上一篇: Creating and Using a COM Object by Using Visual Studio 2005
下一篇: 变量名和常数的命名方式
dadahacker
博客等级 码龄20年 78粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值