C# orientado a objetos

Propriedades e encapsulamento em C#

Nesta lição, você vai usar propriedades com validação para proteger um objeto contra valores inválidos.

Introdução

Encapsulamento (encapsulation) significa manter os dados dentro do objeto e só permitir alterações por caminhos controlados. Em C#, as propriedades permitem escrever a validação no momento da atribuição, enquanto quem usa o objeto continua com uma sintaxe simples, como a de uma variável comum.

O campo _price é private, então não pode ser acessado diretamente de fora. A propriedade Price lê e grava por meio desse campo, e a parte set só aceita valores não negativos, lançando ArgumentOutOfRangeException se o preço for negativo. Assim, um Product nunca tem um preço inválido, e o valor 19.95 é impresso normalmente.

Exemplo de C# executável

C#
Rodar 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 da execução
19.95

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

Pratique com um desafio

Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.

Todos os desafios