Obiekty Immutable - charakteryzują się tym, że nie można ich zmienić w prosty, bezpośredni sposób po tym jak zostały stworzone. Gdy przekażemy taki obiekt do parametru funkcji lub w jakikolwiek sposób innym metodom, to pozostanie bez zmian. Nie musimy się obawiać, że ktoś zmieni go celowo lub przez przypadek nie wiedząc o konsekwencjach. Przykładem takich klas są np. String, DateTime.

Natomiast kiedy potrzebujemy zmienić taki obiekt to musimy stworzyć go jeszcze raz.

Żadna metoda takiej klasy NIE może zmieniać wartości tego obiektu. 


Przykładowy kod klasy Immutable: 

 public class Immutable
    {
        private readonly string _name;

        public string Name { get => _name; }

        public Immutable()
        {
            _name = "Unknown";
        }

        public Immutable(string exampleName)
        {
            _name = exampleName;
        }

        //Creates new instance of class
        public Immutable ChangeName(string Name)
        {
            string newName = Name;
            return new Immutable(Name);
        }
    }




© 2024 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci