Propiedades y encapsulación en C#
En esta lección vas a proteger un objeto frente a valores no válidos con propiedades que incluyen validación.
Introducción
La encapsulación consiste en mantener los datos dentro del objeto y permitir que solo se modifiquen de forma controlada. En C#, las propiedades permiten escribir una validación en el momento de la asignación, mientras que el código que las usa mantiene una sintaxis sencilla, como con una variable normal.
El campo _price es private, así que no se puede acceder a él directamente desde fuera. La propiedad Price lee y escribe a través de ese campo, y su parte set solo acepta valores positivos o cero, y lanza ArgumentOutOfRangeException si el precio es negativo. Así un Product nunca tiene un precio incorrecto, y el valor 19.95 se muestra con normalidad.
Ejemplo de C# ejecutable
using System;
class Product
{
private decimal _price;
public decimal Price
{
get => _price;
set => _price = value >= 0 ? value : throw new ArgumentOutOfRangeException();
}
}
class Program
{
static void Main()
{
var product = new Product { Price = 19.95m };
Console.WriteLine(product.Price);
}
}
19.95Practica con el depurador
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
Todos los retos