Menu
Coddy logo textTech

Propriedades Autoimplementadas

Parte da seção Programação Orientada a Objetos do Journey de C# da Coddy — lição 10 de 70.

Propriedades autoimplementadas permitem que você declare propriedades sem escrever campos de suporte (backing fields) explícitos. O compilador cria um campo privado oculto automaticamente nos bastidores.

Em vez de escrever este código verboso:

public class Product
{
    private string name;
    
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
}

Você pode simplesmente escrever:

public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int Quantity { get; set; }
}

Você também pode definir valores padrão diretamente na declaração:

public class Product
{
    public string Name { get; set; } = "Unnamed";
    public decimal Price { get; set; } = 0.0m;
    public bool IsAvailable { get; set; } = true;
}

Propriedades autoimplementadas são ideais quando você não precisa de validação ou lógica personalizada no getter ou setter. Elas mantêm suas classes limpas e reduzem significativamente o código boilerplate.

challenge icon

Desafio

Fácil

Vamos construir um sistema de inventário simples usando propriedades autoimplementadas para acompanhar os itens em uma loja.

Você criará dois arquivos para organizar seu código:

  • Item.cs: Defina uma classe Item no namespace Inventory com propriedades autoimplementadas para Name (string), Price (decimal) e InStock (bool). Defina valores padrão: Name deve ter como padrão "Unknown", Price como 0.0m e InStock como true.
  • Program.cs: No seu arquivo principal, crie dois objetos Item usando inicializadores de objeto. Leia o nome e o preço de cada item a partir da entrada e, em seguida, imprima os detalhes de cada item.

Você receberá quatro entradas:

  • Nome do primeiro item
  • Preço do primeiro item
  • Nome do segundo item
  • Preço do segundo item

Imprima cada item neste formato:

Item: {Name}, Price: {Price}, In Stock: {InStock}

Por exemplo, se as entradas forem Laptop, 999.99, Mouse e 25.50, a saída deve ser:

Item: Laptop, Price: 999.99, In Stock: True
Item: Mouse, Price: 25.50, In Stock: True

Folha de consulta

Propriedades autoimplementadas permitem que você declare propriedades sem escrever campos de suporte (backing fields) explícitos. O compilador cria automaticamente um campo privado oculto.

Sintaxe básica:

public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int Quantity { get; set; }
}

Definindo valores padrão:

public class Product
{
    public string Name { get; set; } = "Unnamed";
    public decimal Price { get; set; } = 0.0m;
    public bool IsAvailable { get; set; } = true;
}

Propriedades autoimplementadas são ideais quando você não precisa de validação ou lógica personalizada no getter ou setter.

Experimente você mesmo

using System;
using Inventory;

class Program
{
    public static void Main(string[] args)
    {
        // Lê as entradas para o primeiro item
        string name1 = Console.ReadLine();
        decimal price1 = Convert.ToDecimal(Console.ReadLine());
        
        // Lê as entradas para o segundo item
        string name2 = Console.ReadLine();
        decimal price2 = Convert.ToDecimal(Console.ReadLine());
        
        // TODO: Criar dois objetos Item usando inicializadores de objeto
        // Define as propriedades Name e Price a partir dos valores de entrada
        
        // TODO: Imprimir os detalhes de cada item no formato:
        // Item: {Name}, Price: {Price}, In Stock: {InStock}
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos