Индексаторы и массивы

Ковариантность это некий  неявный Upcast каждого элемента массива.

Контравариантность это некий неявный DownCast каждого элемента массива.

Массивы элементов ссылочных типов ковариантны но, не контравариантные.

Массивы элементов структурных типов не ковариантные и не контравариантные.

Массив — именованный набор однотипных переменных, расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу.

Типы массива являются ссылочными типами, производными от абстрактного базового класса Array.

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

 

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

Параметр с ключевым словом params, должен быть только один и стоять последним в списке аргументов метода.

 

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

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

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

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

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

Ковариантность не применима к массивам элементов структурных типов.

 

Обновлено: 19.03.2018 — 13:11

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.