天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

關于代碼規范

  今天被培訓了C#代碼規范,為了統一風格。其中我比較有異議的兩點如下:

  1. 類型實例的私有字段應采用駱駝命名法(camelCasing),不應該有任何前綴,在使用時前邊加"this.”;
  2. 要用FCL類型而不是C#的基元類型,例如要使用Int32代替int。

  首先對于第一點,個人比較習慣的做法是前邊加下劃線,說不上好壞,這兩種寫法在各種開源框架的源碼中都見到過。由于VS默認并不提供像Eclipse那樣的對私有字段變色的功能,所以如果只是簡單的使用camelCasing的話會很難區分哪些是私有字段,哪些是局部變量,所以才有了加this的要求。那么來做個比較:

public void Test(){    _age = DateTime.Now.Year - _birth.Year;    if (_birth > new DateTime(2000, 1, 1))    {        _name += " new century";    }}public void Test2(){    this.age = DateTime.Now.Year - this.birth.Year;    if (this.birth > new DateTime(2000, 1, 1))    {        this.name += " new century";    }}

  哪個更能一眼看出其中的私有字段來?似乎并沒有明顯的區別,相反當局部使用的字段比較多的時候,加下劃線反而顯得更凌亂一點。

  但是,this不是單為field而設置的,實例的屬性,方法,事件都可以使用,一旦我們習慣了使用this:

public void Test(){    Prop1++;    _age = DateTime.Now.Year - _birth.Year;    Method1();    if (_birth > new DateTime(2000, 1, 1))    {        Prop2 += " abcd";        _name += " new century";    }    Event1 += () => { };}public void Test2(){    this.Prop1++;    this.age = DateTime.Now.Year - this.birth.Year;    this.Method1();    if (this.birth > new DateTime(2000, 1, 1))    {        this.Prop2 += " abcd";        this.name += " new century";    }    this.Event1 += () => { };}

  哪個更能一眼看出其中的私有字段來?這個例子可能偏激了一些,但足以表達我的意思。

  另一方面來說,一旦我敲下了this.,由于VS的智能提示,會出現一大堆的提示項讓我腦袋發蒙,但是當我敲一個下劃線之后,出現的就只會是所有的私有字段了,干凈了許多。

  m_的前綴也是一個不錯的選擇,而且這兩種前綴當我們使用快捷鍵生成屬性的時候,VS都會聰明地把前綴去掉,首字母大寫,只顯示我們想要的名字。

  好吧如果這一條規則我還能接受的話,第二個規則就實在讓我無法理解了。

要用FCL類型而不是C#的基元類型,例如要使用Int32代替int。

  培訓人并沒有說清楚為什么要這么做,從《CLR via C#》這本書中看出,作者也是強烈建議使用FCL類型,他的理由大致是:有些人對int表示什么有困惑,認為在32位機器上就代表Int32,在64位機器上就代表Int64,如果我們直接使用Int32就不會有這樣的困擾;long在很多語言中不是64位的,這讓習慣于這些語言的人看C#會有誤解;等等。

  這些理由我都承認,但我認為不足以說服我使用FCL類型,我的理由如下:

  1. 我認識的同事,95%都使用C#的基元類型來敲代碼,如果一個規則要讓絕大多數人都更改自己的習慣,那么它本身就不合理,而且不可能實施得很順利。
  2. VS的智能提示都擅自主張地使用C#基元類型而不是FCL類型,即使你用FCL類型編寫了一個方法,在我們使用時出現在智能提示中的仍然是基元類型。如果我看到一個方法返回long型,我很自然地會使用一個long去接收它,如果前邊寫一個Int64接收一個返回long的方法不覺得別扭么?如果我是新手我是不是認為這還是個隱式轉型呢?
  3. 從習慣上來說,我敲一個int比敲一個Int32快許多,也舒服很多。我敲一個Int64更是痛苦無比,每次都要低頭去找6在哪。我按6最多的時候是玩魔獸的時候,但是玩魔獸和敲代碼食指的位置不一樣啊,我總是按到7啊。
  4. 我個人喜歡藍色,比那個藍不藍綠不綠的好看多了,這個純粹是吐槽。

  對于統一編碼規范我是舉雙手贊同的,尤其在交接工作比較頻繁的時候,看著各種各樣新奇的命名法總是讓人心里抓狂。程序員都多多少少有一些潔癖吧,看到不符合自己風格的就想去改。我不是做決定的人,但我總是希望一個人在替很多人做決定時還是廣泛征求下意見比較好,不要輕易地把自己的習慣強加給別人,除非你有充足的理由說服我。對于一個熱愛這項職業的程序員來說,能舒舒服服地敲代碼是一種幸福,但是服從上級的安排,為大局著想又是我的義務,要是能舒舒服服地完成義務該多好。

NET技術關于代碼規范,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产免费午夜高清 | 久久精品一区二区免费看 | 亚洲国产无线码在线观看 | 台湾佬休闲中性娱乐网 | 浴室里强摁做开腿呻吟的漫画 | 少妇厨房愉情理9伦片视频 少妇被躁爽到高潮无码久久 | 胸大的姑娘中文字幕视频 | 91区国产福利在线观看午夜 | 善良的小峓子2在钱免费中文字 | 日本乱子人伦在线视频 | 黄色三级三级三级免费看 | 依人青青青在线观看 | 果冻传媒MV免费播放在线观看 | 国产成+人+综合+亚洲不卡 | 久久综合中文字幕无码 | 校花的奶好大好浪 | 魅男mangay| 小草观看免费高清视频 | 果冻传媒完整免费网站在线观看 | 理论片午午伦夜理片影院 | 老太婆性BBWBBW | 国产乱辈通伦影片在线播放亚洲 | 精品一二三区久久AAA片 | 国产乱码卡二卡三卡4W | 国产品无码一区二区三区在线 | 久久re6热在线视频精品 | 亚洲国产第一区二区三区 | 无码专区无码专区视频网网址 | 久久这里只有精品国产99 | 快播官方网站 | 亚洲 欧美 国产 综合久久 | 加勒比一本之道高清视频在线观看 | 6080yy奇领电影在线看 | 亚洲精品无码不卡在线播HE | 亚洲精品中文字幕在线 | 欧美精品3atv一区二区三区 | 麻豆免费观看高清完整视频在线 | 香蕉人人超人人超碰超国产 | 手机在线播放成人亚洲影院电影 | 人人澡人人擦人人免费 | 国产超碰AV人人做人人爽 |