[英]Roslyn: Compile expression with non-public fields from external assembly
[英]Using a Prefix on Non-Public Fields
我不知道有人使用'm_'作為非公共字段(包括我自己)的前綴,但是我知道應該這樣做的三個原因:
_
”,但首選“ m_
”,因為名稱應以字母字符開頭。 (這來自Dan Rigsby建議的編碼標准 ) _
”前綴不符合CLI,而“ m_
”則符合CLI。 我的問題是:您是否(是的,您!)能夠將其作為當前正在研究的項目的新標准,考慮到上述原因,還是您會因為對這個想法的不滿仇恨而失去理智?
ps:請不要告訴我“匈牙利語”是不好的,因為這個建議(孤立地講)確實與匈牙利語沒有任何關系。
我認識的大多數人(包括我自己)僅將_
用作非公共字段的前綴。 它鍵入的時間較短,並且使字段在智能感知中一起出現。 我還發現它比m_
更可讀
這個問題已經問過很多次了,但是又一次取決於個人喜好,只要您始終如一,那么這兩種方法都不會有任何問題。
據我所知,大多數C#編碼標准都要求使用無前綴的小寫成員變量名稱。 就我個人而言,我不喜歡這種方法,因為您的成員變量傾向於與方法參數沖突,因此您經常需要使用“ this”對其進行限定。
我在成員變量的名稱前使用了一個下划線,但是我敢肯定有很多人也不喜歡。 歸結為整個代碼庫的一致性。
CLS不是CLR規范堅持認為, 公共成員和受保護成員並非僅因情況而異。 重要的是要意識到以下事實:除非您打算在跨多種語言的其他項目中使用它們,否則不必使您的類型符合CLS。 即使這樣,如果這是一個內部項目,也可能無需遵循所有 CLS指南。
無論如何,這僅適用於在聲明程序集外部可能可見的成員(換句話說, private
成員和internal
成員是免稅的),此建議與非公共字段無關。
話雖如此,自從我們能夠命名變量以來,命名約定的概念一直在爭論。 就個人而言,不,我不喜歡在變量前加上m_
的想法,但這是個人喜好。
是。 所有程序員都必須接受他們正在從事的項目的標准,這一點很重要-這是管理層堅持標准的好兆頭,無論個人是否同意。
就我個人而言,我認為以“ m_”作為前綴是浪費按鍵,但是如果它在標准中,那我將堅持。
如果我正在編寫標准,我將指定“ _”用作非公共字段的前綴。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.