2013-07-30 79 views
2

由於C#和the best code is no code at all中默認私有成員爲私有成員,因此爲避免混亂,C#省略慣用私有成員的方式聲明私有成員爲private?或者是更明確的更常見?要清楚的是,我並不是問每個人對此問題的看法是什麼,但是在已知的代碼庫(我對C#相當陌生)中更常見。私人成員應該明確聲明爲私人的慣用C#嗎?

+0

按照您的偏好設置。如果有人關心你明確宣佈了某種「私人」的東西,他們就會挑剔,浪費你的時間。恕我直言 – Khan

+0

微軟似乎在.NET框架庫中。 – Magnus

回答

4

就我個人而言,我聲明他們爲private,以防其他人拿起代碼並做出可能不正確的假設,或者決定更改範圍級別(認爲您忘記將成績放在成員身上)。另外,其他一些語言可能會有不同的默認實現,所以如果您的團隊的新成員首次提取C#,顯式減速將幫助他們。

發現這對Safari的電子書C#最佳實踐:

始終明確使用範圍關鍵字爲所有類型和成員。

爲什麼:Visual Basic類型成員的默認範圍是Public, 而C#的默認範圍是私有的。忽略範圍 關鍵字可能會妨礙對其他 語言更熟悉的開發人員。

+0

不要忘記Java的默認與'internal'最爲相似(沒有直接的等效)。但「私人」總是「私人」的。 –

4

可能重複的Why explicitly write "private"?。我認爲最好的做法是明確宣佈它們是私密的。你的代碼變得更可讀,尤其是對其他人來說......主要原因是私人不是每種語言的默認訪問級別,正如上面問題中接受的答案所說的那樣。

1

大多數C#風格指南似乎贊成顯式隱式。例如,如果任何類型的對象(類,接口,字段,屬性,方法等)被聲明爲沒有訪問修飾符,StyleCop幾乎總是會抱怨。

我的個人偏好也總是包含private關鍵字,因爲它可以讓您更容易一眼就看到該成員是私人的。如果沒有訪問修飾符,我的大腦必須經歷兩個步驟,首先需要確定沒有訪問修飾符,然後記住沒有修飾符= private

是什麼讓它更復雜是事實,例如在類上,沒有訪問修飾符= internal。我明白爲什麼字段/屬性/方法和類/接口在這方面需要有所不同,但我不喜歡缺少訪問修飾符根據對象類型改變其含義的事實。

但是,所有這些當然是非常有爭議的。