Властивість
Приховуємо нашу змінну через модифікатор 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{ get{ return 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
}
}