用于标识符的规则
标识符是给变量、用户定义的类型(例如类和结构)和这些类型的成员指定的名称。区分大小写,使用什么标识符有两个规则:
它们必须以一个字母或下划线开头,但可以包含数字字符;
不能把C#关键字作为标识符。
C#关键字
abstract | do | In | protected | true |
as | double | Int | public | try |
base | else | Interface | readonly | typeof |
bool | enum | Internal | ref | uint |
break | event | Is | return | ulong |
byte | explicit | lock | sbyte | unchecked |
case | extern | long | sealed | unsafe |
catch | false | namespace | short | ushort |
char | finally | new | sizeof | using |
checked | fixed | null | stackalloc | virtual |
class | float | object | static | volatile |
const | for | operator | string | void |
continue | foreach | out | struct | while |
decimal | goto | override | switch | |
default | if | params | this | |
delegate | Implicit | private | throw |
如果需要把某一关键字用作标识符,可以在标识符前面加上前缀@符号,指示编译器其后的内容是一个标识符,而不是关键字。标识符也可包含Unicode字符,用语法/uXXXX来指定,其中XXXX是Unicode字符的四位十六进制代码。同一标识符在同一个作用域内不要声明两次。
用法约定
用法约定与语言规则不同,用户应尽可能遵循这些规则,但如果有很好的理由不遵循它们,也不会有什么问题。编程风格的规则非常多,如果要让代码完全遵循用法规则,就需要参考MSDN文档说明。
命名约定
使程序易于理解的一个重要方面是给对象选择命名的方式。包括变量名、方法名、类名、枚举名和命名空间的名称。显然这些名称应反映对象的功能,而不是反映数据类型,但这种规则是一种理想状态,很难达到。
在许多情况下,名称都应使用Pascal大小写命名形式(名称中单词的第一个字母大写)。命名空间、类、以及基类中的成员的名称都应遵循该规则,最好不要使用带下划线字符的单词。属性和方法的使用
还有一种camel大小写形式,名称中第一个单词的第一个字母不是大写。
类型中所有私有成员字段的名称
但要注意成员字段名常常用一个下划线开头
传递给方法的所有参数
也可用于区分同名的两个对象,常见的情况是属性封装一个字段
public string UserName
... {
get
...{
return userName;
}
}
名称的风格应该保持一致。
类中出现混乱的一个方面是一个数是用属性还是方法来表示。一般情况下,如果该对象的外观和操作都像一个变量,就应该使用属性来表示它:
- 客户机代码应能读取它的值,最好不要是用只写属性。
- 读取该值不应花太长的时间。
- 读取该值不应有任何不希望的负面效应。
- 应可以用任何顺序设置属性。
- 顺序读取属性也应有相同的效果。
字段的用法
字段的用法非常简单,总是私有的,但在某些情况下也可以把常量或只读字段设置为公有。