簡體   English   中英

在非公共字段上使用前綴

[英]Using a Prefix on Non-Public Fields

我不知道有人使用'm_'作為非公共字段(包括我自己)的前綴,但是我知道應該這樣做的三個原因:

  1. CLR規范堅持認為,屬性名稱和相應的字段不應僅因字母大小寫而不同。 某些語言不區分大小寫。 可以使用“ _ ”,但首選“ m_ ”,因為名稱應以字母字符開頭。 (這來自Dan Rigsby建議的編碼標准
  2. 僅“ _ ”前綴不符合CLI,而“ m_ ”則符合CLI。
  3. 至少在VS 2008及更高版本中,Intellisense不會區分XAML中定義的類型和Xcode中定義的類型。 后面的代碼中使用的'm_'將解決此問題。

我的問題是:您是否(是的,您!)能夠將其作為當前正在研究的項目的新標准,考慮到上述原因,還是您會因為對這個想法的不滿仇恨而失去理智?

ps:請不要告訴我“匈牙利語”是不好的,因為這個建議(孤立地講)確實與匈牙利語沒有任何關系。

我認識的大多數人(包括我自己)僅將_用作非公共字段的前綴。 它鍵入的時間較短,並且使字段在智能感知中一起出現。 我還發現它比m_更可讀

這個問題已經問過很多次了,但是又一次取決於個人喜好,只要您始終如一,那么這兩種方法都不會有任何問題。

據我所知,大多數C#編碼標准都要求使用無前綴的小寫成員變量名稱。 就我個人而言,我不喜歡這種方法,因為您的成員變量傾向於與方法參數沖突,因此您經常需要使用“ this”對其進行限定。

我在成員變量的名稱前使用了一個下划線,但是我敢肯定有很多人也不喜歡。 歸結為整個代碼庫的一致性。

CLS不是CLR規范堅持認為, 公共成員和受保護成員並非僅因情況而異。 重要的是要意識到以下事實:除非您打算在跨多種語言的其他項目中使用它們,否則不必使您的類型符合CLS。 即使這樣,如果這是一個內部項目,也可能無需遵循所有 CLS指南。

無論如何,這僅適用於在聲明程序集外部可能可見的成員(換句話說, private成員和internal成員是免稅的),此建議與非公共字段無關。

話雖如此,自從我們能夠命名變量以來,命名約定的概念一直在爭論。 就個人而言,不,我不喜歡在變量前加上m_的想法,但這是個人喜好。

是。 所有程序員都必須接受他們正在從事的項目的標准,這一點很重要-這是管理層堅持標准的好兆頭,無論個人是否同意。

就我個人而言,我認為以“ m_”作為前綴是浪費按鍵,但是如果它在標准中,那我將堅持。

如果正在編寫標准,我將指定“ _”用作非公共字段的前綴。

暫無
暫無

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

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