C#编程命名规范
王小明,他的长辈肯定有姓王的,彭河村村头不就有家王姓人家吗,可能就是那家的小孩,一个走丢的小孩就成功的回家了。
命名规范就如同给人起名一样,从名字中传达出一些信息,比如作用域、类型,能够起到见名知义的作用,在开发的时候,有个良好的命名规范能够提升不少的开发效率。特别是团队开发的时候,每个人的命名规范不同,在调用或维护的时候,还要花时间来揣摩作者创建类或字段的意图。
- 命名空间:使用格式<Company>.<Compinent>,如,Weimei.Study,这样规范主要是为了在引用了第三方库的时候防止命名空间重名,造成编码是的混淆;
- 类、接口、方法及属性:使用Pascal命名规则,如,GetDescript;
- 变量:使用Camel命名规则,如,personCount;
- 常量:全部大写,单词之间用下划线“_”隔开,如,GROW_UP_AGE。
namespace Weimei.Study { class Person { public const int GROW_UP_AGE = 18; private string _name; public string Name; { get{ return _name;} set{ _name = value;} } public int Age { get; set; } } interface IPersonService { string GetDescript(); } }
使用前缀或后缀作为标识,区分不同的职能或类型:
- 接口:使用字母”I“作为前缀;
- 静态变量:使用“s_”作为前缀;
- 实体变量:使用“m_”作为前缀;
- 成员变量:使用“_”作为前缀。
namespace Weimei.Study { class Program { static void Main(string[] args) { Person m_person = new Person(); m_person.Name = "王小明"; m_person.Age = 12; IPersonService m_ps = new PersonService(m_person); string result = m_ps.GetDescript(); Console.WriteLine(result); Console.ReadLine(); } } class Person { public const int GROW_UP_AGE = 18;//成年年龄 private string _name; public string Name { get{ return _name;} set{ _name = value;} } public int Age { get; set; } } interface IPersonService { string GetDescript(); }
class PersonService : IPersonService { Person _m_person; public PersonService(Person m_person) { _m_person = m_person; } public string GetDescript() { string desc = "未成年"; if (_m_person.Age >= Person.GROW_UP_AGE) { desc = "已成年"; } return _m_person.Name + desc; } } }注意事项:
- 在起名字时,不要随意起,比如变量int a,其他人要知道这个变量是干什么用的还要看下面的代码。如果变量使用来计数的,则应起名为xxCount;
- 创建类时不要与内置类名相同,以免混淆;
- 适当使用前缀和后缀,反之会适得其反。