No, Microsoft says that publicly visible participants should not only differ from the case:
This rule only works for public members.
(This includes protected members as they are visible to derived classes.)
So this is great:
public class Foo { private string bar; public string Bar { get { return bar; } } }
Itβs my personal rule not to allow any other private fields, in which case this is not a problem.
Do you really need protected fields? How about a property having a protected setter if you want to mutate it from derived classes?
Jon skeet
source share