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

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

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

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

  • Частный
  • Общая
  • Защищенный
  • внутренний
  • Защищенный внутренний
  • Частный Защищенный

Мы узнаем об основных модификаторах доступа в C# на примерах программ, как описано ниже.

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

Когда модификатор доступа Private прикреплен к свойству или методу, это означает, что к этим членам невозможно получить доступ из любой внешней программы.

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

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

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

Модификаторы частного доступа

Теперь перейдем к нашему файлу Program.cs. Вы заметите, что под методом SetTutorial есть красная волнистая линия.

Поскольку теперь мы объявили метод SetTutorial как частный в нашем классе Tutorial, Visual Studio обнаружил это. Он сообщил пользователю, выделив его, что теперь этот метод не будет работать из файла Program.cs.

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

Модификаторы общего доступа C#

Когда модификатор доступа Public прикреплен к свойству или методу, это означает, что к этим членам можно получить доступ из любой внешней программы. Мы уже видели это в наших предыдущих примерах.

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

Модификаторы общего доступа C#

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

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

Когда модификатор доступа Protected прикреплен к свойству или методу, это означает, что доступ к этим членам может получить только классы унаследованы от текущего класс. Более подробно это будет объяснено в классе «Наследование».

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

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

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

C# Конструкторы используются для инициализации значений полей класса при создании соответствующих объектов. Конструктор — это метод, имеющий то же имя, что и у класса. Если в классе определен конструктор, он предоставит первый метод, который вызывается при создании объекта. Предположим, у нас есть класс под названием «Сотрудник». Метод конструктора также будет называться «Сотрудник()».

Фоллоwing необходимо отметить ключевые моменты в отношении методов конструктора

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

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

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

Шаг 1) Первым шагом является создание конструктора для нашего класса Tutorial. На этом этапе мы добавляем приведенный ниже код в файл Tutorial.cs.

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

Объяснение кода: -

  1. Сначала мы добавляем новый метод с тем же именем, что и у класса. Поскольку это то же имя, что и класс, C# рассматривает его как метод конструктора. Итак, теперь всякий раз, когда вызывающий метод создает объект этого класса, этот метод будет вызываться по умолчанию.
  2. В конструкторе Tutorial мы устанавливаем значение TutorialID равным 0, а 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 класса Tutorial, чтобы получить TutorialName. Затем это отображается на консоли с помощью метода Console.WriteLine.

Если приведенный выше код введен правильно и программа выполняется, тоwing вывод будет отображаться.

Вывод:

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

Из вывода мы видим, что конструктор действительно был вызван и что значение TutorialName было установлено на «По умолчанию».

Примечание: Здесь значение «по умолчанию» извлекается из конструктора.

Итоги

  • Модификаторы доступа C# или спецификаторы доступа используются для определения видимости свойства или метода класса.
  • Когда модификатор доступа Private прикреплен к свойству или методу, это означает, что к этим членам невозможно получить доступ из любой внешней программы.
  • Когда модификатор доступа Public прикреплен к свойству или методу, это означает, что к этим членам можно получить доступ из любой внешней программы.
  • Когда модификатор доступа Protected прикреплен к свойству или методу, это означает, что к этим членам могут получить доступ только классы, унаследованные от текущего класса.
  • Когда модификатор доступа Internal прикреплен к свойству или методу, доступ к этим членам может быть возможен только для внутренней программы, но не для внешней программы.
  • Конструкторы C# используются для инициализации значений полей классов при создании соответствующих объектов.