title: Are protected members/fields really that bad?
body: <p>Now if you read the naming conventions in the MSDN for C# you will notice that it states that properties are always preferred over public and protected fields.  I have even been told by some people that you should never use public or protected fields.  Now I will agree I have yet to find a reason in which I need to have a public field but are protected fields really that bad?</p>
  
  <p>I can see it if you need to make sure that certain validation checks are performed when getting/setting the value however a lot of the time it seems like just extra overhead in my opinion.  I mean lets say I have a class GameItem with fields for baseName, prefixName, and suffixName.  Why should I take the overhead of both creating the properties (<code>C#</code>) or accessor methods and the performance hit I would occur (if I do this for every single field in an application, I am sure that it would adds up at less a little especially in certain languages like <code>PHP</code> or certain applications with performance is critical like games)?</p>