王小明,他的長輩肯定有姓王的,彭河村村頭不就有家王姓人家嗎,可能就是那家的小孩,一個走丟的小孩就成功的回家了。 命名規範就如同給人起名一樣,從名字中傳達出一些信息,比如作用域、類型,能夠起到見名知義的作用,在開發的時候,有個良好的命名規範能夠提升不少的開發效率。特別是團隊開發的時候,每個人的命名規範 ...
王小明,他的長輩肯定有姓王的,彭河村村頭不就有家王姓人家嗎,可能就是那家的小孩,一個走丟的小孩就成功的回家了。
命名規範就如同給人起名一樣,從名字中傳達出一些信息,比如作用域、類型,能夠起到見名知義的作用,在開發的時候,有個良好的命名規範能夠提升不少的開發效率。特別是團隊開發的時候,每個人的命名規範不同,在調用或維護的時候,還要花時間來揣摩作者創建類或欄位的意圖。
- 命名空間:使用格式<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;
- 創建類時不要與內置類名相同,以免混淆;
- 適當使用首碼和尾碼,反之會適得其反。