Os membros / campos protegidos são realmente tão ruins?

Agora, se você ler as convenções de nomenclatura no MSDN para C #, notará que ele afirma que as propriedades são sempre preferidas aos campos públicos e protegidos. Algumas pessoas já me disseram que você nunca deve usar campos públicos ou protegidos. Agora vou concordar que ainda não encontrei um motivo pelo qual preciso ter um campo público, mas os campos protegidos são realmente tão ruins assim?

Posso ver se você precisa garantir que certas verificações de validação sejam executadas ao obter / definir o valor, mas na maioria das vezes parece uma sobrecarga extra na minha opinião. Quero dizer, digamos que eu tenho uma classe GameItem com campos para baseName, prefixName e suffixName. Por que eu deveria assumir a sobrecarga de criar as propriedades (C#) ou métodos de acessador e a ocorrência de desempenho que eu ocorreria (se eu fizer isso para todos os campos de um aplicativo, tenho certeza de que aumentará um pouco menos, especialmente em determinados idiomas comoPHP ou certos aplicativos com desempenho são críticos, como jogos)?

questionAnswers(6)

yourAnswerToTheQuestion