March 8, 2020

Свойства

Привет всем! Сегодня предлагаю разобраться со свойствами в ООП C#.

И так, свойства обеспечивают простой доступ к полям классов и структур, узнать их значение или выполнить их установку.

class Pets
    {
        private string breed;
        
        public string Breed
        {
            get
            {
                return breed;
            }
            
            set
            {
                breed = value;
            }
        }
    }

И так, мы имеем private переменную в классе Pets и public функцию. Через функцию Breed мы можем задать значение для приватной переменой( при помощи свойства set ) и вывести значение этой переменной( использую свойство get )

Давайте попробуем воспользоваться

class Program
    {
        static void Main(string[] args)
        {
            Pets dog = new Pets();
            
            dog.Breed = "Dog";
            
            Console.WriteLine(dog.Breed);
        }
    }

Здесь мы как всегда создаем экземпляр класса, через dog.Breed сначала задаем значение private переменной, а второй раз используя этот метод выводим значение в консоль.

Сейчас это выгладит как бесполезное написание кода, но давайте представим что нам нужно написать программу, отбирающую на конкурс всех кроме крыс.

class Pets
    {
        private string breed;
        
        public string Breed
        {
            get
            {
                return breed;
            }
            
            set
            {
                if (value == "rat")
                {
                    Console.WriteLine("На конкурс не принимаются крысы");
                }
                else
                {
                    breed = value;
                }
            }
        }
    }

В данном случае при установку значения мы проверяем, что он соответствует нашему условию.

Если в классе не указано свойство set, то поле будет доступно только для чтения. В обратном случае, поле является доступным только для записи.

На сегодня это все, если у вас остались вопросы - можете писать в лс.

Удачи программисты!