Las propiedades privadas pueden ser muy útiles para encapsular el comportamiento de cosas que son internas de su clase. El hecho de que sean privados no significa que no debas aprovechar el azúcar sintáctico que te dan las propiedades.
Sin embargo, el ejemplo dado es pobre. Los captadores y establecedores de propiedades de este tipo son casi siempre una mala idea. Si está utilizando C # 3.0 o posterior, las propiedades automáticas son una idea mucho mejor:
private string Whatever { get; set; };
Esto es más corto, más limpio y mucho más legible. De hecho, es apenas más largo que simplemente declarar la variable de respaldo.
Sin embargo, lo más importante es que las propiedades automáticas se pueden convertir en propiedades completas en cualquier momento sin cambiar la semántica del resto del programa. Por lo tanto, si necesita agregar validación o manejo de errores, puede hacerlo fácilmente.
Tal como están las cosas, siempre pensé que era una lástima que no pudieras tener una propiedad de solo lectura, para exigir solo poder escribir en el valor en el constructor ( prefiero los tipos inmutables ), pero esto se agregó en C # 6.0 como "Inicializadores de propiedad automática", que le permite hacer:
private string Whatever { get; } = ...;
o
private string Whatever { get; };
junto con
Whatever = ...;
en el constructor