簡體   English   中英

常量縮寫的命名約定

[英]Naming Convention for constant Acronyms

根據StyleCop對常量的命名約定為Pascal。

例如

private const double InchToMm= 2.54;

首字母縮寫的命名約定如何?

private const int Dpi = 96;

要么

private const int DPI = 96;

Microsoft的框架設計指南說:

PascalCasing約定用於除參數名稱之外的所有標識符,將每個單詞的首字符大寫(包括長度超過兩個字母的首字母縮寫),如以下示例所示:

PropertyDescriptor

HtmlTag

對於兩個字母的首字母縮略詞有一種特殊情況,其中兩個字母都大寫,如以下標識符所示:

IOStream

camelCasing約定(僅用於參數名稱)將除第一個單詞以外的每個單詞的第一個字符大寫,如以下示例所示。 如示例所示,以駝峰式標識符開頭的兩個字母的首字母縮略詞均為小寫:

propertyDescriptor

ioStream

htmlTag

但是,這些只是指南和約定,而不是法律。 如果您想采用其他約定,請使用它。 但是,永遠永遠不會混淆。

如果您走自己的路線,這有點主觀,但希望不是。 最簡單的UpperCamelCase標准我已經找到了球隊一貫遵循,如果一致性是您的主要目標風格,是Dpi 我並不是說這是我的最愛或最易讀的或類似的內容。

我的意思是,這是對不同的團隊一致地應用最簡單的標准,甚至在您使用此約定的這些年中也可以獨立應用。 原因是它相當機器人化,幾乎不需要思考。 這樣做的方法是問自己如何使用下划線約定編寫此代碼。 你會這樣寫嗎?

d_p_i

...如果是這樣,則將由下划線分隔的每組字符中的第一個轉換為大寫。 產生DPI 但是可能幾乎每個人都會在下划線約定中這樣寫:

dpi

...因此,從下划線到UpperCamelCase的自動,明確的翻譯成為Dpi 如果我們有同樣的事情:

renderer_gl

...來自下划線的毫無爭議的自動翻譯將是RendererGl

現在,這樣做的好處並不一定是它與人類閱讀和書寫的方式十分相似或最接近。 就是這樣,只要您可以確定如何在下划線上寫入標識符(大多數人都會一致地這樣做),那么即使是機器人,也可以毫無歧義地將其轉換為UpperCamelCaselowerCamelCase

因此,如果您的團隊之間具有強烈的審美觀是一致的,並且約定兩個人不會試圖使用不同的外殼,那么這可能是最簡單的方法。 在我們看來,一致性是我們的首要目標,因為我們提供了軟件開發工具包,並且我們不希望我們的API不一致。 為此,它幫助建立了一種輕松的方式來選擇如何使用CamelCase ,它不需要太多的思考或涉及任何形式的歧義。

與其他約定一樣,通常您會發現許多特殊情況的縮寫/縮寫。 “如果是常見的首字母縮寫,則將其視為一個單詞。如果不是,則將其視為首字母縮寫(全部大寫)。如果長度為2個字母,則將其視為首字母縮寫。如果長度為3個以上字母,則將其視為首字母縮寫。如果結尾處有L或M,則應將其視為一個單詞,否則應使用首字母縮寫詞,除非其后跟數字或專有名詞(如果它看起來不好),請改用其他方式。 ” 大腦在這里可能會陷入困境,而團隊可能無法始終如一地應用這些標准。

當然,一致性可能不是您的最大目標,但如果是,我建議您采用這種慣例。

我可以在常量上找到的唯一StyleCop規則是SA1303 它指出:

C#常數字段的名稱必須以大寫字母開頭。

因此, DpiDPI都適合該規則。

微軟說您應該給Pascal辯護。 我認為常量應該全部為大寫,因此我將使用DPI 微軟在命名空間名稱中使用Xml ,也應該用Pascal大小寫,因此Dpi將最符合微軟自己使用的命名約定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM