Sobes.tech
Junior — Middle

გაამართლებთ, რა ნიშნავს ობიექტების შექმნას, რომლებიც მათი ინიციალიზაციის შემდეგ უცვლელია.

sobes.tech AI

პასუხი AI-სგან

შექმნილი ობიექტები, რომლებიც მათი ინიციალიზაციის შემდეგ არ იცვლება, ნიშნავს, რომ ობიექტი შექმნის შემდეგ და მისი ველები მითითების შემდეგ, ამ ობიექტის მდგომარეობა არ შეიძლება შეიცვალოს. ასეთ ობიექტებს უწოდებენ immutable (შეუცვლელ) ობიექტებს.

C#-ში ეს მიღწევადია, მაგალითად, შემდეგი გზებით:

  • ველების გამოცხადება readonly-ად;
  • თვისებებზე სეტტერების არარსებობა (მხოლოდ გეტერები);
  • ყველა მონაცემის ინიციალიზაცია კონსტრუქტორის მეშვეობით.

უპირატესობები immutable ობიექტების:

  • უსაფრთხოება მრავალთრობით, დამატებითი სინქრონიზაციის გარეშე.
  • კოდის გაგების გამარტივება, რადგან ობიექტის მდგომარეობა არ იცვლება.
  • გამოყენება როგორც გასაღებები კოლექციებში და კეშებში.

მაგალითი:

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

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

Person-ის ინстанციის შექმნის შემდეგ, მისი თვისებები ვერ შეიცვლება.