Question:
"Should you ever use private on fields and methods in C#?"
Quick Answer:
Yes, but, it depends in your code logic.
Long Boring Extended Answer:
I suggest, always specify vissibility for members.
I think It is a good approach to declare members, by default, as "private".
In real world, I use "protected", instead.
Sooner, or later, that hidden member, could be used by a subclass.
Sometimes, a good question, can be better answered, by asking the opposite question.
The opposite question, to your question, could be something like:
"Should I use always public access modifier on fields & methods in C#"
In other programming languages you can "promote" protected to public,
depending on your design.
I use a lot of (visual) control deep hierarchy libraries, where,
some members (properties, methos) are required.
Sometimes, is better to have them public, sometimes don't.
private
. It makes for less cognitive dissonance for me if I can always expect to see the scope specifier as the first part of an identifier declaration. It takes my mind less time to read "private" than it does to figure out that the first word is not a scope specifier and, oh yeah, that means that it is a private member declaration. Writing code is also about having to read it later. – Robert Harvey Aug 04 '14 at 16:57