Головна‎ > ‎C#‎ > ‎Класи‎ > ‎

Властивість

Приховуємо нашу змінну через модифікатор private
та надаємо public get і public set методи для доступу

Усі поля, які не змінюються після народженні матимуть лише get



Повний варіант
class A
{
     private string name;  // поле (field)
     public string Name    // властивість (property)
     {
          get { return name; }
          set { name = value; }
     }
}

class Program
{
     static void Main(string[] args)
     {
          A obj = new A();
          obj.Name = "Taras";
          Console.WriteLine(obj.Name);
     }
}



Скорочений варіант

class A
{
     public string Name{ get; set; }  // = "Taras";  працює без реалізації методів

     public A() {
          Name = "Taras";
     }
}

static void Main(string[] args)
{
     A obj = new A();
     Console.WriteLine(obj.Name); // Taras
     Console.ReadLine();
}




  • public int A{ get; }
  • public int A{ get; private set; }   // дає можливість міняти властивість всередині класу
  • public int A{ getreturn 5}
  • internal string Name { get; set; } = "Taras"// або в конструкторі
  • Для властивостей можна робити virtual і override


Якщо властивостей багато, C# 9


        class A
        {
            public int X { get; init; }
            public int Y { get; init; }
        }

        static void Main(string[] args)
        {
            A obj = new A() { 
                X = 10,
                Y = 5
            }
        }