一个好的名字能够让你的程序更加好懂 别人一看到这个名字 就能够猜到你在做什么 大量好的名字离不开好的命名规范 而一个好的命名规范要做到两点
l 合理 即容易被大家接受和使用 从这个意义上来说 好的命名规范不应该太长 它应该让你花上 分钟就能看完 写过几段代码就能熟悉
l 风格一致 即前后一致 例外的情况少
符合以上两点的命名规范就是好的 虽然它们具体的规则可能不同 有的时候 命名规范体现了编程思想 比如 对于接口 在 NET中 一般要求以 I 开头 在Java中没有这个要求 原因是Java认为接口和抽象类往往可以转化 比如 在项目初期 可能定义的是接口 而在后面 可能把它改成抽象类 如果名称一致 就避免了名称的改动
另外 不同的命名规范也体现了程序发展历程 比如 匈牙利命名法要求类型前缀 故在C++ VB PB一般都会大量出现类型前缀 像intAmount strName等 而现在一般没有这个要求 原因是 )有些类型可能会做修改 比如Int 变成Int 另外对于一些动态语言(Python JavaScript)来说 其类型是变化的 编译时无法确定 )现在的开发环境更加的友好 即使在开发的时候 你也很容易知道变量的类型(只要鼠标移上去)
本文的命名规范主要基于微软的标准 另外加上实际开发的一些具体经验 它还在不断的维护和完善 你可以针对不同项目的要求 做相应的调整
命名样式
样式分类
名称
解释
适用环境
例子
Pascal 大小写
首字母和后面的每个单词的首字母都大写 其他字母小写
BackColor
Camel 大小写
首字母小写 而后面的每个单词的首字母大写 其他字母小写
backColor
大写
所有字母都大写
l 缩写
l 少于等于 个字符
System IO
System Web UI
样式的选择
标识符
命名格式
例子
备注
参数 局部变量
Camel
public int GetTypeID(string typeName)
{ int typeID; … }
Private Protected的实例字段
Camel
private string redValue;
protected bool isOk;
界面控件
Camel
private Label lblAlarm;
缩写
大写
namespace System IO
{ … }
缩写必须是被普遍接受 众所周知的缩写
除上面的标识符外
Pascal
public System Drawing Color BackColor
{ … }
原则和习惯首要原则
有意义的 描述性的词语来命名 能够一眼看出它作什么 别使用会引起误解的名字 如果名字一目了然 就无需用文档来解释方法的功能了
除约定俗成的 别用缩写 用name address salary等代替 nam addr sal
除用于循环 别使用单个字母的变量象i n x 等 而要使用 index temp等
for ( int i = i < count i++ ){ ……}其他习惯l除了界面控件外 不要使用类型前缀 比如 使用名称amount 而不是 intAmount
l类 使用名词 名词短语命名 比如 public class FileStream
l方法 使用动词 动词短语开始 比如 CreateUser() RemoveAt()等
l接口 以 I 开始 后面加上名词 名词短语 形容词命名 比如 IDisposable
l常量 所有单词大写 多个单词之间用 _ 隔开 public const string PAGE_TITLE = Wele
l命名空间
基本格式
CompanyName/ProjectName TechnologyName[ Feature][ Design]
a)CompanyName/ProjectName 公司名 项目名称或产品名称
b)TechnologyName 稳定的 公认的技术名称或架构层次名称
c)[ Feature][ Design] 可选的功能与设计
例如
//微软公司的Web开发中的UI中的Design
namespace Microsoft Web UI Design
//西门子报价项目中业务逻辑层中的项目管理
namespace SiemensQuotation BusinessRules ProjectManagement
几个规则
a)嵌套的命名空间应当有依赖关系 例如 System Web UI Design 中的类依赖于 System Web UI 中的类 而不能相反
b)命名空间和类不能使用同样的名字 例如 命名空间Debug下最好不要又一个类名为Debug
c)如果公司名 项目名称或产品名称太长的话 可以用缩写(且全部大写)
控件命名控件的名称中需要加上前缀 之所以这样做是为了区分界面的控件和普通的对象 由于界面修改往往非常频繁 区分开来能使你更快速的找到控件 从而修改界面 举一个例子
界面有 个TextBox 个Label 一个TextBox对应一个Label 为了完成读写 你至少要有 条语句来从控件进行取 赋值操作 如果有前缀的话 输入this txt 你就几乎马上能找到这个控件 反之 如果没有前缀 由于窗口或页面对象拥有大量的属性和变量(> 个) 你将花费大量时间来查找 另外一个TextBox对应一个Label(一个代表值 一个代表名称) 它们往往指同一样事物 如果有前缀 就很容易区分这两个控件
控件
前缀
备注
Label
lbl
比如 lblName
TextBox
txt
Button
btn
CheckBox
c
RadioButton
rdo
CheckBoxList
clst
RadioButtonList
rdolst
ListBox
lst
DropDownList
ddl
DataGrid
dg
DataList
dl
Image
img
Table
tbl
Panel
pnl
LinkButton
lnkbtn
lishixinzhi/Article/program/net/201311/15419
C#简单命名指南
另外 不同的命名规范也体现了程序发展历程 比如 匈牙利命名法要求类型前缀 故在C++ VB PB一般都会大量出现类型前缀 像intAmount strName等 而现在一般没有这个要求 原因是 )有些类型可能会做修改 比如Int 变成Int 另外对于一些动态语言(Python JavaScript)来说 其类型是变化的 编译时无法确定 )现在的...
uppercase letter什么意思
总结来说,uppercase letter指的是在编程中,为了标识和区分不同的标识符,尤其是类、常量或接口等,使用的首字母大写的命名习惯。这是一种通用的编程风格指南,有助于保持代码的组织和一致性。在实际编程中,遵循这样的规则可以提升代码的可维护性和团队协作效率。
详细说一下C#中using自动释放资源的用法
C# 关键字 extern(C# 参考)命名空间关键字(C# 参考)using 指令(C# 参考)概念 C# 编程指南 命名空间(C# 编程指南)其他资源 C# 参考 实现 Finalize 和 Dispose 以清理非托管资源
在Linux下能使用C#开发吗
指南五:C#语言本身是免费的,跨平台的,它编译完后是IL也是如此,所以你用VS开发的C#,是可以直接在Linux上运行的(实际承载的runtime才是关键),一句hello world可以跑遍大江南北(win,linux,mac)。指南六:如果想在Linux上开发调试,Xamarin Studio符合你的胃口(地址:http:\/\/www.monodevelop.com\/ ...
Selenium IDE使用指南四(代码导出)
1. 创建一个新包,复制一个现有的语言包,例如packages\/code-export-java-junit,然后将其重命名为您想要贡献的目标语言和框架(例如packages\/code-export-ruby-rspec,等等)。添加新的软件包作为依赖于package.json在code-export。2. 更新定位器和命令,代码导出的基础是特定于语言的字符串,这些字符串...
接口是什么
例如:有关显式接口实现的更多详细信息和代码示例,请参见显式接口实现(C# 编程指南)。示例 下面的示例演示了接口实现。在此例中,接口IPoint 包含属性声明,后者负责设置和获取字段的值。Point 类包含属性实现。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
UniTask中文使用指南(一)
为了使用UniTask,你需确保所使用的Unity版本在2018.3之后,最低版本为2018.4.13f1,以支持UniTask所依赖的C# 7.0特性。引入命名空间`using Cysharp.Threading.Tasks;`,并使用`UniTask`或`struct UniTask`来替代原生的`Task`,实现Unity专用的异步操作。在使用UniTask时,需注意几个关键点:1. **...
C#变量定义中含问号代表什么
C#变量定义中含问号代表该变量允许为空(null)。可以为 null 的类型可以表示基础类型的所有值,另外还可以表示 null 值。 可以为 null 的类型可通过下面两种方式中的一种声明:System.Nullable<T> variable- 或 - T? variableT 是可以为 null 的类型的基础类型。 T 可以是包括 struct 在内的任何值...
HTTP 协议中 URI 和 URL 有什么区别
方案部分(scheme):http:\/\/ 地址部分:CEALER | 一些瞬间、一些回忆、一些经典、一些原创、一些愤怒、一些感动 资源部分:\/1.png 而在C#中,URL类属于System.Security.Policy命名空间,Uri属于System。在MSDN对Url类的备注中,能更好的说明Url与Uri的区别:Url 证据的存在将在授予集内生成 UrlIdentity...
win7下SQL2008安装程序直接不能运行看别人说要先按VS再按sp1但我先按...
以下择自《C#编程指南》(清华大学出版社2011年1月出版,可网购)第13章:安装SQL2008容易失败,一个比较有成功把握的安装步骤如下:重装系统(Window7)|Office2007(SP1)|SQL2008|SQL2008SP1|SQL2008的AdventureWorks示例数据库|Visual2010(或者Visual2008|Visual2008sp1)。重装系统前最好先格式化硬盘,...