C# orientado a objetos

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

C#
Ejecutar código →
Program.cs
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);
    }
}
Resultado de la ejecución
19.95

Practica con el depurador

Pon un punto de interrupción en una asignación o condición importante, pulsa Debug y revisa los valores locales antes de pasar a la siguiente línea.

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