Menu
Coddy logo textTech

Właściwości automatyczne

Część sekcji Programowanie obiektowe ścieżki C# w Coddy. Lekcja 10 z 70.

Właściwości implementowane automatycznie pozwalają deklarować właściwości bez pisania jawnych pól zapasowych. Kompilator automatycznie tworzy ukryte pole prywatne.

Zamiast pisać ten rozwlekły kod:

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

Możesz po prostu napisać:

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

Możesz też ustawić wartości domyślne bezpośrednio w deklaracji:

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

Właściwości implementowane automatycznie są idealne, gdy nie potrzebujesz walidacji ani własnej logiki w akcesorze pobierającym lub ustawiającym. Dzięki nim Twoje klasy są przejrzyste, a ilość powtarzalnego kodu znacząco się zmniejsza.

challenge icon

Wyzwanie

Łatwy

Zbudujmy prosty system magazynowy, który wykorzystuje właściwości implementowane automatycznie do śledzenia produktów w sklepie.

Utworzysz dwa pliki, aby uporządkować kod:

  • Item.cs: Zdefiniuj klasę Item w przestrzeni nazw Inventory z właściwościami implementowanymi automatycznie: Name (string), Price (decimal) i InStock (bool). Ustaw wartości domyślne: Name powinno mieć domyślnie wartość "Unknown", Price — 0.0m, a InStock — true.
  • Program.cs: W pliku głównym utwórz dwa obiekty Item za pomocą inicjalizatorów obiektów. Odczytaj z wejścia nazwę i cenę każdego produktu, a następnie wyświetl szczegóły każdego z nich.

Otrzymasz cztery dane wejściowe:

  • Nazwę pierwszego produktu
  • Cenę pierwszego produktu
  • Nazwę drugiego produktu
  • Cenę drugiego produktu

Wyświetl każdy produkt w następującym formacie:

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

Na przykład, jeśli danymi wejściowymi są Laptop, 999.99, Mouse i 25.50, wynik powinien wyglądać następująco:

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

Spróbuj swoich sił

using System;
using Inventory;

class Program
{
    public static void Main(string[] args)
    {
        // Wczytaj dane wejściowe dla pierwszego przedmiotu
        string name1 = Console.ReadLine();
        decimal price1 = Convert.ToDecimal(Console.ReadLine());
        
        // Wczytaj dane wejściowe dla drugiego przedmiotu
        string name2 = Console.ReadLine();
        decimal price2 = Convert.ToDecimal(Console.ReadLine());
        
        // TODO: Utwórz dwa obiekty Item za pomocą inicjalizatorów obiektów
        // Ustaw właściwości Name i Price na podstawie wartości wejściowych
        
        // TODO: Wypisz szczegóły każdego przedmiotu w formacie:
        // Item: {Name}, Price: {Price}, In Stock: {InStock}
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator C# online