Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Екзамен з комп. арх..doc
Скачиваний:
4
Добавлен:
17.09.2019
Размер:
449.02 Кб
Скачать

15. Статичні конструктори, поля та методи класів в мові c#.

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

Статические конструкторы обладают следующими свойствами.

  • Статический конструктор не принимает модификаторы доступа и не имеет параметров.

  • Статический конструктор вызывается автоматически для инициализации класса перед созданием первого экземпляра или ссылкой на какие-либо статические члены.

  • Статический конструктор нельзя вызывать напрямую.

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

  • Если статический конструктор инициирует исключение, среда выполнения не вызывает его во второй раз, и тип остается неинициализированным на время существования домена приложения, в котором выполняется программа.

Нестатический класс может содержать, статические методы, поля свойства или события. Статический член вызывается для класса даже в том случае, если не создано экземпляра класса. Доступ к статическому члены всегда выполняется по имени класса, а не экземпляра. Существует только одна копия статического члена, независимо от того, сколько создано экземпляров класса. Статические методы и свойства не могут обращаться к нестатическим полям и событиям в их содержащем типе, и они не могут обращаться к переменной экземпляра объекта, если он не передается явно в параметре метода.

Более привычно объявление нестатического класса с несколькими статическими членами, чем объявлять весь класс как статический. Статические поля обычно используются для следующих двух целей: хранение счетчика числа созданных объектов, или хранение значения, которое должно совместно использоваться всеми экземплярами.

Статические методы могут быть перегружены, но не переопределены, поскольку они относятся к классу, а не к экземпляру класса.

Хотя поле, не может быть объявлено как static const, поле const по своему поведению является статическим. Оно относится к типу, а не к экземплярам типа. Поэтому к полям const можно обращаться с использованием той же нотации ClassName.MemberName, что и используемой для статических полей. Необходим экземпляр объекта.

C# не поддерживает статических локальных переменных (переменных, которые объявлены в области действия метода).

Для объявления статических методов класса используется ключевое слово static перед возвращаемым типом члена

16. Індексатори та властивості в мові C#.

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

Общие сведения о свойствах

  • Свойства позволяют классу предоставлять общий способ получения и задания значений, скрывая при этом код реализации или проверки.

  • Метод доступа свойства get используется для возврата значения свойства, а метод доступа set используется для назначения нового значения. Эти методы доступа могут иметь различные уровни доступа.

  • Ключевое слово value используется для определения значения, присваиваемого методом доступа set.

  • Свойства, которые не реализуют метод доступа set, доступны только для чтения.

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

Индексаторы позволяют индексировать экземпляры класса или структуры так же, как массивы. Индексаторы напоминают свойства, но их методы доступа принимают параметры.

Общие сведения об индексаторах

  • Индексаторы позволяют индексировать объекты аналогично массивам.

  • Метод доступа get возвращает значение. Метод доступа set присваивает значение.

  • Ключевое слово this используется для определения индексаторов.

  • Ключевое слово value используется для определения значения, присваиваемого методом set индексатора.

  • Индексаторы не обязаны использовать в качестве индекса целочисленное значение; конкретный механизм поиска определяет разработчик.

  • Индексаторы можно перегружать.

  • Индексаторы могут иметь более одного формального параметра, например при доступе к двухмерному массиву.