2011-03-02 75 views
0

在下面的人爲的例子,這是命名我的「[Nn] ame」屬性的正確方法?似乎.NET中的所有東西都是某種形式的Pascal案例。將駱駝案件用於產權名稱會被視爲「不良形式」嗎?我讀了MS guidelines on naming,他們說使用Pascal 的情況。我真的很討厭Pascal的情況,看起來好像是這樣。適當的財產命名

什麼是普遍認同的標準(它只是MS指南)還是無關緊要?如果我在這裏使用駱駝案件,我不好嗎? TIA。

using System; 

namespace Properties { 
    class Program { 
    static void Main() { 

     var tester = new Tester(); 
     tester.Name = "jmquigley"; 
     tester.name = "another jmquigley"; 

     tester.Show(); 
    } 
    } 

    class Employee { 
    public string Name { get; set; } 
    public string name { get; set; } 

    public void Show() { 
     Console.WriteLine("Name = {0}", Name); 
     Console.WriteLine("name = {0}", name); 
    } 
    } 

    class Tester : Employee { 
    } 
} 

注:我只用繼承此處查看財產如何使用時處理(查看是否一切工作就像一個字段)。

+1

http://stackoverflow.com/questions/127427/common-naming-conventions例如也許這會被重複關閉,但只要你保持一致,它就不會「重要」,但就大多數MS開發者使用相同標準而言,這是錯誤的。具有相同範圍和名稱的兩個屬性(僅僅因案例而異)仍然令人困惑。 – 2011-03-02 21:32:37

+0

哦,我不會在實踐中使用「[Nn] ame」。我只是想將兩種命名類型並列進行討論。我讀了一堆帖子,他們沒有回答我的問題,所以我不認爲這是一個重複(但我想我不會決定,嘿) – jmq 2011-03-02 21:48:32

回答

3

什麼是在 標準(它只是在MS指南)

是的,普遍商定的標準是微軟準則普遍認同。

還是沒關係?

你的代碼將運行而不遵循的準則罰款,但如果我將遵循約定:

  • 你是一個團隊
  • 你是一個僱主生產代碼的一部分
  • 你正在生產開源代碼
  • 您希望能夠更輕鬆地在線閱讀其他人的代碼。
  • 你想做任何以上的在未來
3

微軟的指導方針在整個.Net框架中都得到了應用,並得到了StyleCop,FXCop和ReSharper等工具的支持。使用駱駝案件而不是字段會混淆大多數期望相反的C#開發人員。

+0

它使我困惑,讓我想改變它如此糟糕。這就像一個癢,我必須抓它。 – Greg 2011-03-02 21:35:21

+0

如果這是你自己的代碼,沒有其他人會閱讀它並不重要你使用什麼情況下:) – 2011-03-02 21:36:10

+0

你認爲應用程序是一次性的應用程序的次數多年後仍在使用,由其他開發人員,或者在技術幾乎全部死亡之後很長時間:幾乎所有這些技術。我的機器上仍然安裝了VB6。上帝我討厭它。 – 2011-03-02 21:38:43

0

駱駝案件一般是做事的標準方式。雖然如果您正在從事個人項目,或者由於其他原因可以自行設定標準,那麼可能並不重要。

0

有關標準美妙的事情是,有這麼多的選擇。

坦率地說,這並不重要。如果你有ReSharper,它的默認設置是PascalCase Name屬性,因爲它是一個公共屬性。

0

當然,你可以編碼,但你希望......只要確定如果你沒有利用所有的東西,其他所有看着你的代碼的.NET開發人員都會認爲它看起來很奇怪。另外,你用C#編程的任何工作都可能會讓你使用大寫字母。

0

Pascal案例在.NET世界中佔統治地位。

沒有任何東西強迫你使用Pascal case來處理你自己的代碼,但最終你會得到pascal case(框架類型)和camel case(你自己的類型)的混合。 不一致性比使用pascal case imo更糟糕。

此外,如果您是作爲較大團隊的一員工作,或者如果某個程序員可能需要在將來維護您的代碼,那麼這是符合現狀的另一個很好的理由。

0

標準方法是Pascal Case for Properties和駱駝案例,下劃線爲字段。

public string Name { get; } 
private string _name; 
0

那麼,我在野外看到它的方式是屬性通常是帕斯卡情況。 Pascal案例往往被用於屬性,方法和類。

關於約定的重要記憶是關於緩解兩個人之間的溝通障礙,而不是個人偏好。在最初編寫Java之後首次啓動C#時,轉向Pascal案例的世界是非常奇怪的,但回過頭來看,我應該早些採用慣例。

+0

這就是我來自的地方(java世界)。使用名稱約定的方法和字段似乎有點「異類」。 – jmq 2011-03-02 21:49:49

+1

如果有幫助,可以將公共財產訪問者視爲不僅僅是公共領域。在基本情況下,當他們只是空的get/set,那麼他們只是公共領域。但他們比那更強大;您可以將相當多的邏輯編碼到這些get/set函數中,因此它們與方法非常相似。這可能就是爲什麼公約要將資產資本化。 – porusan 2011-03-02 22:27:35