НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
Мова програмування C#. Уроки W3Schools українською для початківців

En Es De

C# Модифікатори доступу


Модифікатори доступу

Наразі ви добре знайомі з ключовим словом public, яке зустрічається в багатьох наших прикладах:

public string color;

Ключове слово public є модифікатором доступу, який використовується для встановлення рівня доступу/видимості для класів, полів, методів і властивостей.

C# має такі модифікатори доступу:

Модифікатор Опис
public Код доступний для всіх класів
private Код доступний лише в межах одного класу
protected Код доступний у тому самому класі або в класі, успадкованому від цього класу. Ви дізнаєтеся більше про наслідування в наступному розділі
internal Код доступний лише всередині власної збірки, але не з іншої збірки. Ви дізнаєтеся більше про це в наступному розділі

Є також дві комбінації: protected internal і private protected.

Поки що зосередимося на модифікаторах public та private.


Приватний модифікатор

Якщо ви оголошуєте поле з модифікатором доступу private, до нього можна буде отримати доступ лише в тому самому класі:

Приклад

class Car
{
  private string model = "Mustang";

  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model);
  }
}

Виведення буде:

Mustang

Спробуйте самі »

Якщо ви спробуєте отримати до нього доступ поза класом, виникне помилка:

Приклад

class Car
{
  private string model = "Mustang";
}

class Program
{
  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model);
  }
}

Виведення буде:

'Car.model' is inaccessible due to its protection level
The field 'Car.model' is assigned but its value is never used

Спробуйте самі »


Публічний модифікатор

Якщо ви оголосите поле з модифікатором доступу public, воно стане доступним для всіх класів:

Приклад

class Car
{
  public string model = "Mustang";
}

class Program
{
  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model);
  }
}

Виведення буде:

Mustang

Спробуйте самі »


Чому модифікатори доступу?

Контролювати видимість членів класу (рівень безпеки кожного окремого класу та члена класу).

Щоб досягти «Інкапсуляції» — процесу, який забезпечує приховування «конфіденційних» даних від користувачів. Це робиться шляхом оголошення полів як private. Про це ви дізнаєтеся більше в наступному розділі.

Примітка: За умовчанням усі члени класу є privat, якщо ви не вказали модифікатор доступу:

Приклад

class Car
{
  string model;  // private
  string year;   // private
}