Getters - Setters
En C#, aparte de la forma tradicional de definir los getters y setters como en tu ejemplo, existen otras formas de implementar propiedades con un estilo más compacto y expresivo. Algunas de estas son:
-
Propiedades Auto-implementadas:
- En este caso, el compilador genera automáticamente el campo de respaldo para la propiedad.
- Se utilizan cuando no se necesitan lógicas personalizadas en los getters y setters.
private decimal Peso { get; set; } -
Miembros con Expresión de Cuerpo:
- Esta sintaxis permite definir tanto los métodos como las propiedades utilizando expresiones de función flecha.
- Es útil para propiedades simples que requieren una lógica mínima.
private decimal Peso { get => _peso; set => _peso = value < 0 ? throw new Exception() : value; } -
Propiedades con un Campo de Respaldo:
- Similar a tu ejemplo, pero sin validación adicional.
- Se utiliza cuando se necesita alguna lógica en los getters y setters, pero no es suficiente para justificar una expresión de función flecha o cuando la lógica es más compleja.
private decimal _peso; public decimal Peso { get { return _peso; } set { _peso = value; } } -
Propiedades de Sólo Lectura:
- Son propiedades que solo tienen un getter y no tienen un setter.
- Útiles cuando se necesita una propiedad que solo se puede establecer en el constructor o en la inicialización.
public decimal Peso { get; }
Cada uno de estos enfoques tiene sus casos de uso específicos y puede ayudar a escribir un código más limpio y legible.