c#命名法 【转】

摘要:
匈牙利命名方法通过在变量名称前加上相应的小写符号标识符来标记变量的范围、类型等。但是骆驼命名是小写的,而Pascal命名是大写的,例如publicvoidDisplayInfo();字符串用户名;两者都采用Pascal命名法。有了这些C#命名约定,我们可以在未来的工作中更加标准化。

一、匈牙利命名法:广泛应用于象Microsoft Windows这样的环境中。

      Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。

匈 牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量), 再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。

    匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

匈牙利命名法中常用的小写字母的前缀:

前 缀       类  型
a               数组 (Array)
b               布尔值 (Boolean)
by             字节 (Byte)
c              有符号字符 (Char)
cb            无符号字符 (Char Byte,没有多少人用)
cr             颜色参考值 (ColorRef)
cx,cy         坐标差(长度 ShortInt)
dw           Double Word
fn              函数
h                Handle(句柄)
i                整型
l              长整型 (Long Int)
lp             Long Pointer
m_          类的成员
n            短整型 (Short Int)
np          Near Pointer
p            Pointer
s           字符串型
sz         以null做结尾的字符串型 (String with Zero End)
w        Word


二、骆驼命名法:

        骆驼式命令法,正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数:

   printEmployeePaychecks();

    print_employee_paychecks();

     第一个函数名使用了骆驼式命名法——函数名中的每一个逻辑断点都有一个大写字母来标记;第二个函数名使用了下划线法----函数名中的每一个逻辑断点都有一个下划线来标记。

    骆驼式命名法近年来越来越流行了,在许多新的函数库和Microsoft
Windows这样的环境中,它使用得当相多。另一方面,下划线法是c出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍。


三、帕斯卡(pascal)命名法:

       与骆驼命名法类似。只不过骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写

       如:public void
DisplayInfo();

              string UserName;

              二者都是采用了帕斯卡命名法.


在C#中,以帕斯卡命名法和骆驼命名法居多。


简单说

MyData 就是一個帕斯卡命名的示例
而myData是一個骆驼命名法,它第一個單詞的第一個字母小寫,後面的單詞首字母大寫,看起來像一個骆驼
而iMyData是一個匈牙利命名法,它的小寫的i說明了它的型態,後面的和帕斯卡命名相同,指示了該變量的用途.

本文为了方便大家工作,特总结了以下C#命名规范。有了这些C#命名规范,今后在工作中就能更加规范化和标准化。

    1 ADO.NET 命名规范

数据类型数据类型简写标准命名举例
ConnectionconconNorthwind
CommandcmdcmdReturnProducts
ParameterparmparmProductID
DataAdapterdaddadProducts
DataReaderdtrdtrProducts
DataSetdstdstNorthWind
DataTabledtbldtblProduct
DataRowdrowdrowRow98
DataColumndcoldcolProductID
DataRelationdreldrelMasterDetail
DataViewdvwdvwFilteredProducts

    2 WinForm Control 命名规范

数据类型数据类型简写标准命名举例
LabellbllblMessage
LinkLabelllblllblToday
ButtonbtnbtnSave
TextBoxtxttxtName
MainMenummnummnuFile
CheckBoxchkchkStock
RadioButtonrbtnrbtnSelected
GroupBoxgbxgbxMain
PictureBoxpicpicImage
PanelpnlpnlBody
DataGriddgrddgrdView
ListBoxlstlstProducts
CheckedListBoxclstclstChecked
ComboBoxcbocboMenu
ListViewlvwlvwBrowser
TreeViewtvwtvwType
TabControltctltctlSelected
DateTimePickerdtpdtpStartDate
HscrollBarhsbhsbImage
VscrollBarvsbvsbImage
TimertmrtmrCount
ImageListilstilstImage
ToolBartlbtlbManage
StatusBarstbstbFootPrint
OpenFileDialogodlgodlgFile
SaveFileDialogsdlgsdlgSave
FoldBrowserDialogfbdlgfgdlgBrowser
FontDialogfdlgfdlgFoot
ColorDialogcdlgcdlgColor
PrintDialogpdlgpdlgPrint

    3 WebControl 命名规范

数据类型数据类型简写标准命名举例
AdRotatoradrtExample
ButtonbtnbtnSubmit
CalendarcalcalMettingDates
CheckBoxchkchkBlue
CheckBoxListchklchklFavColors
CompareValidatorvalcvalcValidAge
CustomValidatorvalxvalxDBCheck
DataGriddgrddgrdTitles
DataListdlstdlstTitles
DropDownListdropdropCountries
HyperLinklnklnkDetails
ImageimgimgAuntBetty
ImageButtonibtnibtnSubmit
LabellbllblResults
LinkButtonlbtnlbtnSubmit
ListBoxlstlstCountries
PanelpnlpnlForm2
PlaceHolderplhplhFormContents
RadioButtonradradFemale
RadioButtonListradlradlGender
RangeValidatorvalgvalgAge
RegularExpressionvalevaleEmail_Validator
RepeaterrptrptQueryResults
RequiredFieldValidatorvalrvalrFirstName
TabletbltblCountryCodes
TableCelltblctblcGermany
TableRowtblrtblrCountry
TextBoxtxttxtFirstName
ValidationSummaryvalsvalsFormErrors
XMLxmlcxmlcTransformResults

    C#命名规范相关介绍与总结就到这里。

免责声明:文章转载自《c#命名法 【转】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ant design pro (八)构建和发布记一次docker容器中运行springboot程序日志打印的中文变成问号下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【C#】unsigned char类型

1、在C#中char是16位的;C++中的char是8位的。 unsigned char类型可以用byte类型代替。 2、 byte b = 1; byte b = Convert.ToByte(1);//这两种写法一样,相当于unsigned char=1 byte b = Convert.ToByte('1');//相当于unsigned char=...

浅谈C#托管程序中的资源释放问题

终于开始动手写这篇文章了,有个网友催了我好几次,而我要么因为手头有事,要么就是被其他思路给叉开,以至这篇文章拖了好久还没开始写,今天终于可以静下心来完成它。   用了.net工具来写程序的人,不难发现它有个好处,就是使用的内存不用释放,尤其在使用C#或者VB.Net来写程序,因为程序所占用的内存都是受系统托管的,因此内存的释放不需要程序员去操心。   很多...

python与c#的交互模块pythonnet

 今天总结一下python与c#的交互模块pythonnet,其实微软也是有相应的解释器的,就是Ironpython,可是毕竟Ironpython还有很多东西没有从python那边继承过来,所以有时候用起来并不是那么爽。但是好在强大的社区总会给我们惊喜,pythonnet就是其中一个让我惊喜的模块,它可以平滑的和C#进行交互。但是网上这方面的资料还是太少了...

jenkins动态参数插件Dynamic Parameter安装及简单使用

插件安装: 1.先下载插件hpi文件到本地   jenkins插件下载地址 http://mirror.xmission.com/jenkins/plugins/ http://updates.jenkins-ci.org/download/plugins/   dynamicparameter下载地址: http://mirror.xmission.co...

es6 let

1.变量 var  function let const class import    定义变量的关键字 备注     不能忽略函数的形参      函数的私有变量 var     定义变量 var 定义变量能够提升但是不能定义  给window添加一个对应的属性 function    即可以提前声明     同时还定义了 定义:所谓的定义  就是给这...

C#遇上WINCC

前言 在工控领域中,WinCC仍然占有很大的市场份额。很多时候我们说学习C#开发上位机可以取代传统的组态软件,两者就像冤家一样,然而,即使是冤家,也会有联合的时候。比如,当我们的项目已经采用WINCC并已经落地,如果我们学会C#,能做哪些事情呢?今天跟大家分享一下如何使用C#/.NET联合西门子WinCC实现数据通信。 环境搭建 众所周知,WinCC作为...