【C# 基础知识篇】C# .Net设计准则之命名要求

C#基础学习(五) | 变量的命名规则 阅读详情

前言

命名规则,其实是一种约定俗成的定义方式。旨在使多数开发人员在编程时统一编程模型,易于代码理解。
接触过的多种编程语言,都有不一样的命名规则,难免经常会混淆。
单独记录一篇日志,方便自己加深印象。
遇到混淆或有遗忘时,亦可翻出来重新看看。
全文参考来自微软官方文档,具体参考“.Net框架设计准则”

常见的变量命名方法

  • PascalCase(帕斯卡命名法)
    PascalCase 正如它的名称一样,要求规定每个单词的首字母为大写,不要使用下划线或连字符来区分单词。适用于除了参数名称外的所有标识符。
    例如:SetFirstClass
  • camelCase(驼峰命名法)
    camelCase要求规定将每个单词的首字母(除第一个单词之外)大写,不要使用下划线或连字符来区分单词。仅适用于参数名称。
    例如:firstClassName
  • Hungarian Notation(匈牙利命名法)
    通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。
    例如:i_CalssNumber

命名法的使用规定

  1. ✔️作为公共成员*1、类型和命名空间的标识符名称,使用 PascalCasing命名规则。
  2. ✔️作为私有成员*1和参数 的标识符名称,使用camelCase命名规则。
  3. ❌匈牙利命名法不准许被使用在C#语法中。
  4. ✔️关于组合词和常见术语,将大多数组合术语视为一个单词。(如:Callback,Gridline,Endpoint)
  5. ❌关于缩写词,不要使用未被广泛接受的缩写词;如遇两个字母的缩写词,两个字母均采用大写或小写。(如:Xml,Html,IO,ip,Email)
  6. ✔️遵循标识符易读性强原则,不使用强制缩写的简洁性名称。
  7. ❌避免使用编程语言特有的名称。(这一块理解不是很透彻,针对int,byte这些特有名称适当合理使用,不要产生错误引导)
  8. ✔️如有API版本区分,应该在原有标识符后添加后缀,而不是前缀;如方法发生本质变更,则不允许使用添加后缀来区分,应该重命名。(如:x86 和 x64)
  9. ✔️程序集名称应该体现整体性,建议直接使用模板 “<Company>.<Component>.dll”(如:Litware.Controls.dll)
  10. 命名空间名称,建议直接套模板 “ <Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]”
  11. 类、类成员、结构和接口名称,应合理使用适当的词性(动词,形容词,名词)。

应用举例

//直接模板套用,PascalCasing命名法
namespace MyCompany.Training.Courses
{
    //枚举值:公有成员,PascalCasing命名法
    public enum CourseType
    {
        Lecture,
        Studio,
        Practicum,
    }
    //类:公有成员,PascalCasing命名法
    public class NamingGuidelines
    {
        //字段(通常情况下,应仅对具有 private 或 protected 可访问性的变量使用字段)。
        //使用名词、名词性短语或形容词为字段命名。
        //此处定义一个私有成员date,camelCasing命名法。
        private uint totalChapters;

        //常量:公有成员,PascalCasing命名法。
        public const String CourseTitle = "C# .Net Naming Guidelines";

        //属性:公有成员,PascalCasing命名法。
        //应向属性给定名词性短语或形容词性名称。
        public int ChapterNumber { get; set; }
        //如属性设置值为枚举参考值时,可以考虑使用同等名称:
        public CourseType CourseType { get; set; }

        //方法:公有成员,PascalCasing命名法, 请不要将“Read”命名为“Get”
        //参数:私有成员,camelCasing命名法
        public String ReadCourseCatalog(int numberOfChapter)
        {
            return ($"List {numberOfChapter} out of {totalChapters} chapter titles.");
        }

        //方法:公有成员,PascalCasing命名法,
        //注意,is并不是缩写单词,不必写成“IS”或“is”
        public bool IsStarted() { return false; }

        //事件:公有成员,PascalCasing命名法,事件用谓词命名,并用谓词时态指示引发事件的时间
        public event EventHandler CourseEnding;

        //接口
        //务必在接口名称前加上字母 I,表示该类型是一个接口
        //务必用形容词短语(或偶尔用名词或名词短语)命名接口
        interface IEquatable<T>
        {
            bool Equals(T obj);
        }
    }

}

拓展参考:
命名规范(3)标识符的命名
宏定义命名规范

45、.NET与COM组件开发:从ActiveX控件到设计准则 本文探讨了.NET与COM组件开发的相关技术,涵盖了从ActiveX控件的处理到设计适用于.NET客户端的COM组件的准则。内容包括主互操作程序集的创建、ActiveX控件的自定义、数组和VARIANT参数的使用建议、错误报告的最佳实践,以及资源管理、线程模型、命名规范和性能优化等方面的考虑。通过遵循这些设计准则和实践,可以提升COM组件与.NET客户端的兼容性和易用性。 阅读详情

相关推荐

C#命名规范 C#命名规范

C#命名规范 C#命名规范 C#命名规范 C#命名规范

c#命名规范汇总12条

前言 在刚学习c#的时候,在脑子根本就么有命名规范这个概念,有了一定入门的基础,也很难严格要求自己去规范代码的命名,工作后,发现自己的命名和其他人的命名总会有一些出入,总会闹出一些尴尬的笑话,这里汇总12条c#命名规范。 命名方式主要有两种, 1.驼峰命名法:Camel,驼峰命名法跟帕斯卡命名法相似,只是首字母为小写,如userName。因为看上去像驼峰,因此而得名。俗称“小驼峰”。 2.帕斯卡命...

weixin_30814319的博客 1313

微软编程标准规范(含C++/VC/C#)

对C++/VC/C#编程规范进行详细的说明,如命名规范,注释风格,变量命名标准等。

C#命名规范

C#使用Pascal规则命名,即首字母要大写。 类名,属性名,方法名统一使用Pascal命名方式。 局部变量,形参等使用驼峰命名法。 示例如下: public class UsersEntity { /// <summary> /// 用户ID /// </summary> [Key] public long UserID { get; set; } /// &l

quietbxj的博客 1433

微软牛人总结的经典C#编码规范

微软牛人总结的经典C#编码规范,粗俗易懂,很幽默,非常实用!

Sen+MK趋势分析

Sen+MK趋势分析

地理研究与算法的博客 4万+

C# | .NET命名规范

软件工程不是一个人完成的。”在软件开发中我们的工作几乎不会是独立存在的,所以和身边其他合作者代码风格的统一是一件事关团队开发效率的事。我有过用不同的语言和在不同的框架下做开发的经验,发现不同的语言在不同的框架下其代码风格都会有很大差异。然而现在正在使用的.NET(C#)是一个正在迈向统一的平台,因此使用C#的工程师会有更多尝试其他框架的机会,因此有时读网上的代码甚至是同事的代码时不免扶额直呼头大。...

猿长大人 921

机械拆装-基于Unity-总体设计

建立一个机械装配的场景

唐小墨同学的博客 2776

.Net框架下的命名准则

对于组成类库的元素(包括程序集、命名空间、类型、成员和参数),命名准则提供如何为这些元素选择合适的标识符的准则。选择符合这些准则的标识符可以提高您的库的可用性,并使用户相信您的库将不需要学习一组新的规则。 为了提供一致的开发人员体验,公共公开的元素(如公共类和受保护的方法)必须遵守这些准则。然而,为在整个代码中保持一致性以及改进可维护性,应考虑在整个代码中始终使用这些约定。部分版权所有 2

嘻嘻哈哈.Net 1414

ESP8266 进行HDLC解码,AX.25,APRS

/************************************************************** 函数名:aprs_wait_begin() 参 数:无 返回值:bool true=得到合法脉冲,false=未得到 说 明:等待第1个833us高脉冲,判断范围 730-930,其他忽略 ***************************************************************/ bool aprs_wait_begin(){ stati

蓝蓝的博客 1629

在URP中正确写入Sprite深度以使用DOF

我准备在文字冒险中加入景深的效果,但是因为unity内置shader的缘故,sprite是不会写入深度的,而如果要使用PostProcessing的DOF效果的话,是必须要将半透明物体的深度正确写入Depth Buffer的,这篇消耗了我大量精力的文章就是要介绍正确写入的方法。 其实,如果只是要在2D游戏中实现类似于景深的效果,不写入深度其实也是可以的,我找到的有两种方案:一种是实时对Sprite进行模糊计算;二是直接使用离线预模糊的图片,根据强度进行混合。 离线预模糊 虽然这两种方法都可以比较简

FREEstriker的博客 2729

Net 类库开发的设计准则

类库开发的设计准则适用于扩展 .NET Framework 并与其交互的库开发。.NET Framework 设计准则的目标旨在通过提供一种独立于开发所用编程语言的统一编程模型,帮助库设计人员确保其用户获得 API 的一致性及易用性的好处。在开发扩展 .NET Framework 的类和组件时,强烈建议您遵循这些设计准则。不一致的库设计会对开发人员的工作效率造成不良影响并妨碍他们互相吸纳。 这些

Franck的专栏 777

蓝桥杯FPGA赛道积分赛

代码如下: 按键驱动 代码如下 按键驱动 代码如下: 顶层文件 按键驱动 数码管驱动 声明:本代码借鉴网络资料,如有侵权和错误请联系作者删除。我是从寒假开始备赛的,由于我基础不行,备赛过程中也是混混呃呃的,备赛效率不高,总体来说备赛不认真,有点拖拉,但是最后我也坚持备赛到了今天,在备赛过程中,即复习了旧的东西,也学到了新的东西,总结起来还是有点收获的,后天北京、天津、河北地区就要进行省赛了,我会全力以赴,不管结果怎么样,尽力就好,最后祝大家都能

weixin_69804913的博客 1991

c#事件设计准则

事件设计的四个步骤 1 在事件发行者中定义一个事件 2 在事件发行者中触发事件 3 在事件订阅者中定义事件处理程序 4 向事件发行者订阅一个事件 下面我们看一个小例子。。打印出键盘的按键操作 namespaceCsharpdemo { publicclassEventDemo { publicdelegatevoidk...

a_16333的博客 132

C# emgu.cv图像识别 从大图中寻找小图,判断存在图的相似度

这是2个问题,我采用emgu.cv来解决这个识别问题,这里需要在nuget中引用emgu。最近写了一个在一张图片中,截取一部分,通过机器判断截取图片是这张图片的。第一、通过小图去找判断是否存在大图中,第二、小图存在大图的什么位置。

一个专注于技术研究创新的程序员 2467

【MATLAB代码】基于水声通信(ACOMMS)下的到达时间差(TDOA)定位的AUV自主导航例程,附完整代码

水下AUV导航系统仿真研究 本研究基于到达时间差(TDOA)技术实现了水下自主航行器(AUV)的三维导航仿真系统。系统采用四个声学信标作为定位基准,通过TDOA测量数据迭代求解AUV位置。仿真结果表明: 导航性能:系统能够有效跟踪AUV从起点(30,30,-20)到目标点(70,70,-20)的航行轨迹,定位误差保持在合理范围内。 误差分析:定位误差变化曲线显示系统具有稳定的定位精度,平均误差为0.5米左右。 技术特点:采用两步最小二乘迭代算法求解非线性TDOA方程,提高了定位精度和计算效率。 该仿真系统为

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 320

.NET命名规范

1. 前言    本文档是按照Maxlab日常C#代码书写规范化需要而对MSDN中《类库开发的设计准则》的具体化,其中若有不详之处可以参考《准则》一文。MaxLab所有.NET项目都应严格遵守本代码规范中的代码书写要求,代码书写规范将作为项目审核标准之一,所以请务必认真阅读本文档。   2. 大小写约定      大小写样式    本文中将出现两种大小写样式,这

qingtian878的专栏 736

jre9下载 jdk9

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

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

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

李赛赛的专栏 1270

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C#事件-设计准则

2010年04月22日 20:14<br /><br />事件设计的四个步骤<br />1 在事件发行者中定义一个事件<br />2 在事件发行者中触发事件<br />3 在事件订阅者中定义事件处理程序<br />4 向事件发行者订阅一个事件<br /><br />下面我们看一个小例子,打印出键盘的按键操作:<br />using System;<br />namespace Csharpdemo<br />{<br />  publicclass EventDemo <br />     {<br /> 

德仔 1709

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

c#中的事件设计准则

事件设计的四个步骤 1 在事件发行者中定义一个事件 2 在事件发行者中触发事件 3 在事件订阅者中定义事件处理程序 4 向事件发行者订阅一个事件 下面我们看一个小例子,打印出键盘的按键操作: using System; namespace Csharpdemo { public class EventDemo { public delegate void keyPr

ghevinn欢迎您光临 1315

.Net框架下的命名准则--类、结构和接口的名称

通常,类型名称应该是名词短语,其中名词是由类型表示的实体。例如,Button、Stack 和 File 都具有名称,用于标识由类型表示的实体。从开发人员的角度选择标识实体的名称;名称应反映使用场合。下面的准则适用于如何选择类型名称。 按照 Pascal 大小写格式,使用名词或名词短语(或偶尔使用形容词短语)为类、接口和值类型命名。不要为类名加前缀(如字母 C)。

嘻嘻哈哈.Net 885

【.NET Core】C#编程规范

为提高产品代码质量,指导广大软件开发人员编写出简洁、可维护、可靠、可测试、高效、可移植的代码,编程规范修订工作组分析、总结各种典型编码问题,并参考了业界编程规范近年来的成果,重新进行了梳理、优化、刷新,微软官方给出一下C#编程规范。代码标准对于在开发团队中维护代码可读性、一致性和协作至关重要。遵循行业实践和既定准则的代码更易于理解、维护和扩展。大多数项目通过代码约定强制要求样式一致。使用命名空间限定。如果你知道命名空间默认导入项目中,则不必完全限定来自该命名空间的名称。

记录总结工作过往 2089

.net 命名规则

<br /> <br />.NET命名规范  <br />  1. 前言    本文档是按照Maxlab日常C#代码书写规范化需要而对MSDN中《类库开发的设计准则》的具体化,其中若有不详之处可以参考《准则》一文。MaxLab所有.NET项目都应严格遵守本代码规范中的代码书写要求,代码书写规范将作为项目审核标准之一,所以请务必认真阅读本文档。 <br />  2. 大小写约定      大小写样式    本文中将出现两种大小写样式,这里先分别定义:              Pascal大小写       

980

【C#】Conventions(惯例)最佳实践和准则

在C#中,Conventions(惯例)是指编写代码时的一套最佳实践和准则。这些惯例旨在提高代码的可读性、一致性和可维护性。虽然这些惯例不是语言的强制规则,但遵循它们可以使你的代码更加清晰和专业。这些只是一些常见的C#编码惯例示例。不同的组织或项目可能有自己特定的惯例和风格指南。重要的是要保持一致性,并与团队中的其他开发人员协调,以确保代码的可读性和可维护性。

hmywillstronger的博客 649
上一篇: 【C# & WebService】【1】认识WebService的交互方式
下一篇: 【C# & WebService】【2】URL Http的基本使用
Colin Tang
博客等级 码龄8年 1805粉丝 27原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值