Sobes.tech
Junior — Middle

Wyjaśnij, co oznacza tworzenie obiektów niezmiennych po ich inicjalizacji.

sobes.tech AI

Odpowiedź od AI

Tworzenie obiektów niezmiennych, czyli takich, które nie zmieniają się po ich zainicjalizowaniu, oznacza, że po utworzeniu obiektu i ustawieniu jego pól, stan tego obiektu nie może zostać zmieniony. Takie obiekty nazywa się immutable (niezmiennymi).

W C# osiąga się to na przykład przez:

  • deklarację pól jako readonly;
  • brak setterów w właściwościach (są tylko gettery);
  • inicjalizację wszystkich danych przez konstruktor.

Zalety obiektów niezmiennych:

  • Bezpieczeństwo wątków bez dodatkowej synchronizacji.
  • Uproszczenie zrozumienia kodu, ponieważ stan obiektu się nie zmienia.
  • Używanie jako kluczy w kolekcjach i cache'ach.

Przykład:

public class Person
{
    public string Name { get; }
    public int Age { get; }

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

Po utworzeniu instancji Person jej właściwości nie mogą być zmienione.