Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Модификаторы доступа в C# (спецификаторы): понимание с практическими примерами

Что такое модификаторы доступа в C#?

Модификаторы доступа — ключевые слова, управляющие видимостью типов и членов типов — являются краеугольным камнем инкапсуляции в C#. Они определяют, какой код может ссылаться на класс, свойство или метод, гарантируя, что только предполагаемые части программы могут взаимодействовать с внутренними деталями реализации.

В C# существует шесть модификаторов доступа:

В этом туториале вы узнаете:

Private модификаторы доступа

Пометка члена как private ограничивает его использование только содержащим классом. Внешний код — включая другие классы в той же сборке — не может ссылаться на private-член.

Пример Private модификатора доступа

Изменим SetTutorial в Tutorial.cs для иллюстрации этого правила. Замените ключевое слово public на private:

Модификаторы доступа в C# (спецификаторы): понимание с практическими примерами

Теперь переключитесь на Program.cs. Компилятор подчёркнёт вызов SetTutorial красной волнистой линией, указывая, что метод недоступен из этого места.

Модификаторы доступа в C# (спецификаторы): понимание с практическими примерами

Public модификаторы доступа

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

Пример Public модификатора доступа

Модификаторы доступа в C# (спецификаторы): понимание с практическими примерами

Поскольку SetTutorial объявлен public, его можно вызвать из Program.cs без ошибок компиляции.

Protected модификаторы доступа

Член protected доступен только внутри своего класса и любых производных классов. Этот уровень доступа идеален для создания повторно используемых базовых классов, сохраняя при этом защиту внутренней реализации.

Internal модификаторы доступа

Internal-члены видны всему коду в той же сборке, но не коду в других сборках. Это полезно для компонентов библиотек, которые должны быть открыты только потребителям библиотеки.

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

Конструкторы инициализируют новый экземпляр класса. Они имеют то же имя, что и класс, не имеют возвращаемого типа и вызываются автоматически при использовании new.

  1. Доступ конструктора по умолчанию — public, если не указано иное.
  2. Конструктор не может объявлять возвращаемый тип.

Пример конструктора C#

Продемонстрируем конструктор, устанавливающий значения по умолчанию для TutorialID и TutorialName при создании объекта Tutorial.

Шаг 1) Добавьте конструктор в Tutorial.cs:

Модификаторы доступа в C# (спецификаторы): понимание с практическими примерами

Пояснение кода

  1. Метод с именем Tutorial трактуется как конструктор. Он запускается автоматически при создании экземпляра.
  2. Конструктор присваивает 0 в TutorialID и "Default" в TutorialName, обеспечивая согласованное начальное состояние.

В 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();
        }
    }
}

Пояснение кода

  1. Экземпляр Tutorial создаётся с ключевым словом new.
  2. Метод GetTutorial извлекает значение TutorialName по умолчанию, которое затем отображается через Console.WriteLine.

При выполнении консоль показывает:

Вывод:

Модификаторы доступа в C# (спецификаторы): понимание с практическими примерами

Вывод подтверждает, что конструктор сработал и инициализировал TutorialName значением "Default".

Примечание: Значение "Default" исходит из конструктора, а не из внешнего кода.

Резюме


Язык C

  1. Цикл do-while в C++: синтаксис, примеры и вложенные циклы
  2. Указатели в C++: концепции, примеры и практические применения
  3. Перегрузка операторов в C++: практическое руководство с примерами кода
  4. Функции в C++: подробное объяснение с практическими примерами кода
  5. Коллекции в C#: практическое руководство с реальными примерами
  6. Мастерство метода str.count() в Python: как подсчитывать символы и подстроки с примерами
  7. Функция round() в Python: подробное объяснение с практическими примерами
  8. Освоение функции map() в Python: синтаксис, примеры и лучшие практики
  9. Python timeit(): измерение времени выполнения с практическими примерами
  10. Python list.count(): экспертное руководство с практическими примерами