`

C++、Java与C#的命名规范总结

    博客分类:
  • c++
阅读更多
在编写代码的过程中所采用的命名方式经常变动,没有形成固定的风格。因此,根据从网上收集到的一些资料以及自身的一些经验,对C++、Java以及C#的命名规范进行了总结,方便以后查询。

命名规范的原则:

◆ 尽量采用以前采用过的命名规则;

◆尽量在三种语言下采用相同的命名规则,以方便记忆;

◆尽量采用来自官方(如Sun、MS)的命名规则。

1. 匈牙利命名法、Camel命名法与Pascal命名法

匈牙利命名法:在Windows编程中使用非常普遍,由微软的一位匈牙利程序员提出。匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前 缀,标识出变量的作用域、类型等。例如,m_lpszStr表示指向一个以0字符结尾的字符串的长指针成员变量。在面向对象的程序设计中匈牙利命名法使用 起来非常别扭。

Camel命名法:即骆驼式命名法,原因是采用该命名法的名称看起来就像骆驼的驼峰一样高低起伏。

Camel命名法有两种形式:混合使用大小写字母和单词之间加下划线,例如runFast和run_fast都属于Camel命名法。

Pascal命名法:与Camel命名法类似,不过Pascal命名法的首字母为大写字母。

2. 命名规范对照表

标识符类型
    

C++
    

Java
    

C#

文件名
    

与类名相同,定义类是文件名一般成对出现,如FooBar.h和FooBar.cpp对应类FooBar。
    

与类名相同。
    

同Java。

名字空间、包
    

同C#。
    

包名的前缀是全部小写的ASII字符并且是一个顶级域名,通常是com,edu,gov,net,org。包名的后续部分根据不同机构各自内部的命名规范不尽相同,这类命名规范可能以特定目录名的组成来区分部门、项目、机器或注册名。

示例:

l com.sun.eng

l com.apple.quicktime.v2

l edu.cmu.cs.bovik.cheese
    

Pascal命名法,且从表示范围大的名字开始。

示例:

l Oracle.Data.Access;

l Microsoft.Office.Excel;

枚举值
    

Pascal命名法,枚举值前面加上枚举类型名,中间以下划线“_”隔开。

示例:

l enum Color{Color_Red, Color_Green};
    

Pascal命名法。

示例:

l enum Color{Red, Green};
    

同Java。

类、结构体、类型定义(typedef)、枚举类型
    

同Java。
    

Pascal命名法。

示例:

l class Raster;

l class ImageSprite;
    

同Java。

接口
    

与类型命名规范相同。
    

命名规则与类名相似。

示例:

l interface RasterDelegate;

l interface Storing;
    

Pascal命名法,前面需要加上字符“I”。

示例:

l interface ITester;

l interface ILogger;

方法
    

同C#。
    

Camel命名法。

示例:

l run();

l runFast();

l getBackGround();
    

Pascal命名法。

示例:

l Run();

l RunFast();

l GetBackGround();

方法内的变量及参数
    

同Java。
    

Camel命名法。

示例:

l int myWidth;

l int taxTotal;
    

同Java。

私有、保护实例字段
    

同Java。
    

Camel命名法,前面需要加一个下划线“_”。

示例:

l int _employeeId;

l String _name;

l Customer _customer;
    

同Java。

属性、存取函数
    

Pascal命名法,读取函数前面加上“Get”,设置函数前面加上“Set”。

示例:

l GetEmployeeId();

l SetName();

l GetCustomer();
    

Camel命名法,读取函数前面加上“get”,设置函数前面加上“set”。

示例:

l getEmployeeId();

l setName();

l getCustomer();
    

与方法命名规则相同,应该与字段名称相同。建议采用自动属性。

示例:

常量
    

同Java。
    

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

示例:

l static final int MIN_WIDTH = 4;

l static final int MAX_WIDTH = 999;

l static final int GET_THE_CPU = 1;
    

同Java。

事件
    


    


    

Pascal命名法。

示例:

l FormClosing;

l ValueChanged;

l ButtonClicked;

异常类型
    

继承自std::exception,与类型命名规则相同,且以Exception结尾。
    

继承自java.lang.Exception,与类型命名规则相同,且以Exception结尾。
    

继承自System.Exception,与类型命名规则相同,且以Exception结尾。
分享到:
评论

相关推荐

    代码规范(含java\c#\c++)

    代码编程规范(含java\c#\c++),对统一团队编码规格标准有帮助

    C#入门经典第三版

    C#语言是一种现代、面向对象的语言,它简化了C++语言在类、命名空间、方法重载和异常处理等方面的操作,它摒弃了C++的复杂性,更易使用,更少出错。它使用组件编程,和VB一样容易使用。C#语法和C++和JAVA语法非常...

    C# 初级者天堂——入门教程

    C#语言是一种现代的、面向对象的语言,它简化了C++语言在类、命名空间、方法重载和异常处理等方面的操作,它摒弃了C++的复杂性,更易使用,更少出错。它使用组件编程,和VB一样容易使用。C#语法和C++、JAVA语法非常...

    c#基础代码及习题,适合新手

    命名空间提供了一种方法来唯一标识一个类型以及进行类型的逻辑组织。命名空间可以嵌套使用并可以跨程序集使用。一个类型的完全限定名包括所有命名空间。...命名空间中的声明,C#与C++有所不同,是C#独有的特点

    各类语言编程规范细则word文档

    详细描述编程语言规范细则,包括C++, Java, JS, C#, SQL等等,有助与代码管理,形成良好编码习惯,可用于教育,工作中规范

    在一小时内学会 C#(txt版本)

    命名空间的概念和 C++ 完全一样,但我们在 C# 中比在 C++ 中更加频繁的使用命名空间。你可以用点(.)定界符访问命名空间中的类。上面的 Hello World 程序中,MyNameSpace 是其命名空间。 现在思考当你要从其他命名...

    C++: The Complete Reference,4th Edition

    本书作者Herbert Schildt是程序设计语言的大师,其著作涉及C、C++、Java和C#等语言。 本书以一种清晰而易懂的方式,全面介绍了C++语言的各个方面,如关键字、语法、函数、类和库,以及一些C++高级特性,如重载、继承...

    关于C#编程语言的一些常见基础面试题.pdf

    2. C#与其他编程语言(如Java、C++等)有哪些不同之处?请说明C#相对于其他语言的优势。 3. C#中的命名空间(Namespace)是什么?请说明在C#中命名空间的作用和用法。 4. C#语言中的面向对象编程(Object-Oriented ...

    c#语言基础

    法和 C++和 JAVA 语法非常相似, 如果读者用过 C++和 JAVA,学习 C#语言应是比较 轻松的。 用 C#语言编写的源程序, 必须用 C#语言编译器将 C#源程序编译为中间语 言(MicroSoft Intermediate Language,MSIL)代码, ...

    C#微软培训资料

    2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 工 具 .17 2.4 小 结 .19 第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 ...

    Modern C#系列课程(9):基于组件的程序设计 (Level 300)

    基于组件的程序设计 (Level 300) 讲 师:俞晖 MSDN 特邀讲师 课程简介:本次课程是系列课程《现代软件开发——使用.NET与C#》的第九讲, 这次系列讲座的目的是为希望从Java, VB6和C++向.NET迁移的程序员...

    c#学习笔记.txt

    很多人觉得它应该像C或者C++,但事实上它更像是java的一个clone,所以作为入门,读一下清华大学出版社出版的《Java 语言与面向对象程序设计》可能会对你有所帮助。本文假定你具备一切学习此语言所需的知识,没有也不...

    C#2010从入门都精通(文字版).pdf 包含练习代码包

    无论是刚开始接触面向对象编程的新手,还是打算转移到C#的具有C,C++或者Java基础的程序员,都可以从《Visual C# 2010从入门到精通:Step by Step》中吸取到新的知识。 作者简介 John Sharp,Content Master首席技术...

    基于C#、ML.NET、ONNX实现YOLOv5对象检测(源码+说明文档).rar

    5、作者介绍:某大厂资深算法工程师,从事Matlab、Python、C/C++、Java、YOLO算法仿真工作10年;擅长计算机视觉、目标检测模型、智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、智能控制、路径规划、...

    javagui源码-duploq:DuploC/C++/C#/Java/JavaScript源代码重复查找器GUI

    ++,C#,Java和JavaScript语言,但也可以用于其他语言。 支持平台 当前,支持Microsoft Windows和Linux平台。 由于DuploQ基于Qt C ++框架,因此可以轻松地跨多个平台移植。 安装 DuploQ可以从源代码编译或安装,也...

    Visual C#2010 从入门到精通(Visual.C#.2010.Step.By.Step).完整去密码锁定版 I部分

    无论是刚开始接触面向对象编程的新手,还是打算转移到c#的具有c,c++或者java基础的程序员,都可以从本书中吸取到新的知识。 作译者 john sharp,content master首席技术专家。content master隶属于cm集团,cm集团...

    NLPIR-ICTCLAS分词系统开发手册2016版

    词法分析是自然语言处理的基础与关键。张华平博士在多年研究工作积累的 基础上,研制出了NLPIR分词系统,主要功能包括中文分词;英文分词;词性标 注;命名实体识别;...C/C++/C#,Java,Python,Hadoop 等)。

    mongodb使用c#驱动数据插入demo

    Mongodb提供了多种开发语言的驱动,java,python,c++,c# 等,这里选用c#驱动作为测试; 首先上mongo官网下载驱动。Ps:官方网站经常连接不顺利。 还不如直接在vs的nuget管理包中搜索mongoDB.driver. 需要引入的命名...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

     Ivor Horton是撰著Java、C和C++编程语言图书的杰出作家之一。大家一致认为,他的著作独具风格,无论是编程新手,还是经验丰富的编程人员,都很容易理解其内容。在个人实践中,Ivor Horton也是一名系统顾问。他从事...

Global site tag (gtag.js) - Google Analytics