由於C#和the best code is no code at all中默認私有成員爲私有成員,因此爲避免混亂,C#省略慣用私有成員的方式聲明私有成員爲private
?或者是更明確的更常見?要清楚的是,我並不是問每個人對此問題的看法是什麼,但是在已知的代碼庫(我對C#相當陌生)中更常見。私人成員應該明確聲明爲私人的慣用C#嗎?
回答
就我個人而言,我聲明他們爲private
,以防其他人拿起代碼並做出可能不正確的假設,或者決定更改範圍級別(認爲您忘記將成績放在成員身上)。另外,其他一些語言可能會有不同的默認實現,所以如果您的團隊的新成員首次提取C#,顯式減速將幫助他們。
發現這對Safari的電子書C#最佳實踐:
始終明確使用範圍關鍵字爲所有類型和成員。
爲什麼:Visual Basic類型成員的默認範圍是Public, 而C#的默認範圍是私有的。忽略範圍 關鍵字可能會妨礙對其他 語言更熟悉的開發人員。
不要忘記Java的默認與'internal'最爲相似(沒有直接的等效)。但「私人」總是「私人」的。 –
可能重複的Why explicitly write "private"?。我認爲最好的做法是明確宣佈它們是私密的。你的代碼變得更可讀,尤其是對其他人來說......主要原因是私人不是每種語言的默認訪問級別,正如上面問題中接受的答案所說的那樣。
大多數C#風格指南似乎贊成顯式隱式。例如,如果任何類型的對象(類,接口,字段,屬性,方法等)被聲明爲沒有訪問修飾符,StyleCop幾乎總是會抱怨。
我的個人偏好也總是包含private
關鍵字,因爲它可以讓您更容易一眼就看到該成員是私人的。如果沒有訪問修飾符,我的大腦必須經歷兩個步驟,首先需要確定沒有訪問修飾符,然後記住沒有修飾符= private
。
是什麼讓它更復雜是事實,例如在類上,沒有訪問修飾符= internal
。我明白爲什麼字段/屬性/方法和類/接口在這方面需要有所不同,但我不喜歡缺少訪問修飾符根據對象類型改變其含義的事實。
但是,所有這些當然是非常有爭議的。
- 1. 幾個「私人」的聲明
- 2. 私人枚舉聲明
- 3. JetBrains.Annotations應該在我的csproj文件中聲明爲私人資產嗎?
- 4. 私人函數聲明gcc vs msvc
- 5. C++:在外部聲明枚舉器,因此可用於私人成員
- 6. C#使所有的私人成員在一個容器中聲明
- 7. 聲明靜態私有數組成員
- 8. 聲明私有成員變量
- 9. Python中的私人成員
- 10. CoffeeScript中的私人成員?
- 11. Java中的私人成員
- 12. Objective-C:我應該聲明私有方法嗎?
- 13. C++類的私人成員函數
- 14. PHP json_encode類私人成員
- 15. ASDocs忽略私人成員
- 16. 公共屬性和私人成員C#
- 17. C++抽象基類私人成員
- 18. 靜態成員類 - 聲明類私有和類成員包私有?
- 19. 私人類構造函數不能訪問私人成員
- 20. @Eutowired集體成員聲明<default>範圍而不是私人
- 21. 在課程結束時聲明私人成員有什麼優勢?
- 22. R中的私人成員引用類
- 23. C++:刪除公共和私人的所有聲明是否正確?
- 24. C++:如何聲明私有成員對象
- 25. 我應該關心JavaScript中的私人成員
- 26. 將一個類的數組聲明爲該類的私有成員?
- 27. 瞭解這種利用「(私人)」在@interface聲明
- 28. 如何聲明一個私人二傳手使用F#
- 29. 班級中的私人成員
- 30. MFC EditControl的值不是私人成員
按照您的偏好設置。如果有人關心你明確宣佈了某種「私人」的東西,他們就會挑剔,浪費你的時間。恕我直言 – Khan
微軟似乎在.NET框架庫中。 – Magnus