As fields are implicitly private, why there is often explicit declaraion used in the books, articles etc.?
问题:
回答1:
Because default access levels vary across languages, and many people program in more than one language. It's easy to become confused, either as the author or as someone reading the code later, thus explicit is nicer to deal with than implicit.
回答2:
The problem with implicit declarations is that the reader cannot tell if whoever wrote the code wanted the implicit declaration or simply forgot to write anything. By being explicit there's no doubt about the intentions.
回答3:
To make your code look nice :).
You're right it's not necessary, but it's custom to write them anyway. At the very least, every method has a privilege explicitly noted and it makes your code easier to read.
回答4:
Sometimes explicit is better than implicit, and this is even more so when you are writing educational material. For people who do not know or cannot remember the rules for the default access levels it is one less thing for them to be concerned with when reading the code.
Related Question
- What are the Default Access Modifiers in C#?
The default access for everything in C# is "the most restricted access you could declare for that member".
回答5:
Because you write code for maintainability and clarity, ESPECIALLY in code samples. Implicit declarations are there for the compiler, not for the programmer. Failing to explicitly declare the visibility and scope of your variables leaves your intent ambiguous. Is it really that much extra typing?
回答6:
You have to remember that code can end up with someone else to reading it at some point, it might be you in 6 months and you need to understand the intent. Declaring something private means that you are not wanting that particular implementation detail to be available to all those who may use it(at this point in time), later revisions may change the way that particular thing works and if you wish to provide backward compatibility, if it's been public from the begining, it needs to remain in future revisions.
回答7:
In my opinion it makes the code better readable. I don't have to think about the default access modifier. It's also enforced by StyleCop, a tool I use to ensure a consistent coding style.
回答8:
Explicit declaration used to told you that the variable is deliberately set to private and it needs to be declare as private