Модифікатори доступу (специфікатори) у C# з прикладами програм

⚡ Розумний підсумок

Модифікатори доступу в C# – це ключові слова, які встановлюють видимість класу, властивості або методу, обмежуючи доступ до них зовнішніх програм. Конструктори ініціалізують значення полів автоматично щоразу, коли створюється об'єкт цього класу.

  • 🔐 Приватна територія: Модифікатор приватного доступу обмежує члена тим самим класом, блокуючи доступ з будь-якої зовнішньої програми.
  • 🌐 Загальнодоступне: Модифікатор доступу public надає властивість або метод будь-якій зовнішній програмі без обмежень.
  • 🛡️ Захищений: Модифікатор захищеного доступу надає спільний доступ до членів лише класам, успадкованим від поточного класу.
  • 📦 Міністерство внутрішніх справ: Внутрішній модифікатор доступу дозволяє доступ в межах тієї ж збірки, але не із зовнішньої програми.
  • 🏗️ Будівельник: Конструктор використовує спільне ім'я класу, не приймає повертаного типу та ініціалізує поля під час створення об'єкта.
  • 🤖 Допомога AI: GitHub Copilot створює модифікатори та конструктори, тоді як ML.NET зіставляє властивості класу з функціями моделі.

Модифікатори доступу (специфікатори) в C#

Що таке модифікатор доступу (специфікатор) у C#?

Модифікатори доступу Специфікатори доступу або специфікатори доступу в C# – це ключові слова, що використовуються для визначення видимості властивості чи методу класу. Вони використовуються, коли ви не хочете, щоб інші програми бачили властивості чи методи класу. Модифікатори доступу обмежують доступ, щоб інші програми не могли бачити властивості чи методи класу.

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

  • приватний
  • громадськості
  • захищений
  • Внутрішній
  • Захищений внутрішній
  • Приватна охорона

Ми дізнаємося про основні модифікатори доступу в C# з прикладами програм, як пояснено нижче.

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

Коли модифікатор приватного доступу додається до властивості або методу, це означає, що до цих учасників неможливо отримати доступ із жодної зовнішньої програми.

Приклад модифікатора приватного доступу

Давайте візьмемо приклад і подивимося, що відбувається, коли ми використовуємо модифікатор приватного доступу.

Давайте змінимо поточний код у нашому файлі Tutorial.cs. У методі SetTutorial давайте змінимо ключове слово public на private.

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

Тепер давайте перейдемо до нашого файлу Program.cs. Ви помітите, що під методом SetTutorial є червона хвиляста лінія.

Оскільки ми зараз оголосили метод SetTutorial як приватний у нашому класі Tutorial, Visual Studio це виявила. Він повідомив користувача, виділивши його, що тепер цей метод не працюватиме з файлом Program.cs.

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

Модифікатори публічного доступу C#

Коли модифікатор публічного доступу додається до властивості або методу, це означає, що до цих членів можна отримати доступ із будь-якої зовнішньої програми. Ми вже бачили це в наших попередніх прикладах.

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

Модифікатори публічного доступу C#

Оскільки ми визначили наші методи як публічні в класі Tutorial, до них можна отримати доступ із файлу Program.cs.

Модифікатори захищеного доступу в C#

Коли модифікатор захищеного доступу додається до властивості або методу, це означає, що до цих членів можуть отримати доступ лише класи, успадковані від струму клас. Це буде пояснено більш детально в класі Inheritance.

Внутрішні модифікатори доступу C#

Коли внутрішній модифікатор доступу додається до властивості або методу, до цих членів може отримати доступ лише внутрішня програма, але не зовнішня програма.

Конструктор C#

C# Конструктори використовуються для ініціалізації значень полів класу під час створення відповідних об’єктів. Конструктор - це метод, який має таке ж ім'я, як і клас. Якщо в класі визначено конструктор, він надасть перший метод, який викликається під час створення об’єкта. Припустімо, якби у нас був клас під назвою Employee. Метод конструктора також називатиметься Employee().

Необхідно звернути увагу на наступні ключові речі щодо методів конструктора

  1. Модифікатор доступу C# за замовчуванням для конструктора потрібно зробити загальнодоступним.
  2. Для методу конструктора не повинно бути типу повернення.

Приклад конструктора C#

Давайте тепер подивимося, як ми можемо включити користувача конструкторів у наш код. Ми будемо використовувати конструктори для ініціалізації полів TutorialID і TutorialName до деяких значень за замовчуванням під час створення об’єкта.

Крок 1) Першим кроком є ​​створення конструктора для нашого класу Tutorial. На цьому кроці ми додаємо наведений нижче код до файлу Tutorial.cs.

Конструктор C#

Code Пояснення:

  1. Спочатку ми додаємо новий метод, який має таке ж ім’я, як і у класу. Оскільки це те саме ім’я, що й клас, C# розглядає це як метод конструктора. Отже, тепер щоразу, коли викликаючий метод створює об’єкт цього класу, цей метод буде викликатися за замовчуванням.
  2. У конструкторі посібника ми встановлюємо значення TutorialID на 0 і TutorialName на «Default». Отже, щоразу, коли створюється об’єкт, ці поля завжди матимуть значення за замовчуванням.

Тепер давайте перейдемо до нашого файлу Program.cs і просто видалимо рядок, який викликає метод SetTutorial. Це тому, що ми просто хочемо побачити, як працює конструктор.

Конструктор C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  public int TutorialID; 
  public string TutorialName;
  
  public Tutorial()
  {
   TutorialID=0;
   TutorialName="Default";
  }
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  public String GetTutorial()
  {
   return TutorialName;
  }
  
  static void Main(string[] args) 
  {
   Tutorial pTutor=new Tutorial();
    
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

Code Пояснення:

  1. Першим кроком є ​​створення об’єкта для класу Tutorial. Це робиться за допомогою ключового слова "нове".
  2. Ми використовуємо метод GetTutorial класу Tutorial, щоб отримати TutorialName. Потім це відображається на консолі за допомогою методу Console.WriteLine.

Якщо наведений вище код введено належним чином і програма виконана, буде показано наступний вихід.

вихід:

Конструктор C#

З результату ми бачимо, що конструктор справді був викликаний і що значення TutorialName було встановлено на «Default».

Примітка: Тут значення «default» витягується з конструктора.

Поширені запитання

Якщо модифікатор не вказано, члени класу та структури за замовчуванням мають тип private, а типи верхнього рівня — internal, залишаючись прихованими, доки ви не розширите їх видимість.

Тип Protected надає члену доступ до того самого класу та будь-якого похідного класу, навіть у різних збірках. Тип Internal надає його лише типам в тій самій збірці.

Захищений внутрішній клас дозволяє доступ з тієї ж збірки або будь-якого похідного класу. Приватний захист є суворішим, дозволяючи лише похідні класи всередині тієї ж збірки.

C# підтримує конструктори за замовчуванням, параметризовані, копіювальні, статичні та приватні конструктори. Вони ініціалізують поля об'єкта, одноразово запускають налаштування класу або клонують значення іншого об'єкта.

Статичний конструктор не приймає модифікаторів чи параметрів. Він виконується один раз, перед створенням першого об'єкта або завантаженням статичних членів, ініціалізуючи статичні поля.

Так. Клас може визначати кілька конструкторів з різними списками параметрів. Компілятор вибирає той, що відповідає аргументам, переданим до new.

Так. GitHub Copilot пропонує модифікатори, конструктори та ініціалізатори полів з назви класу або коментаря всередині Visual Studio та VS Code. Revпереглянути кожен запропонований рівень видимості.

ML.NET відображає публічні властивості класу даних C# на моделі функцій та міток. Публічні методи отримання та встановлення дозволяють зчитувати ці значення під час навчання.

Підсумуйте цей пост за допомогою: