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

86) Что такое семейства? Опишите общий синтаксис описания семейства.).

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

Классы семейств используются для работы со списками объектов и по сравнению с обычными массивами обладают некоторыми дополнительными функциональными возможностями. Эти возможности возникают за счет реализации интерфейсов из пространства имен System.Сollections, что позволяет стандартизировать синтаксис семейств. В пространстве имен содержатся также и некоторые другие интересные вещи, например, классы, которые реализуют интерфейсы отличными от класса System.Array способами.

87) Что такое класс ArrayList?

Класс System.Collections.ArrayList — один из классов в пространстве имен System.Collections — тоже реализует интерфейсы

89) Что такое класс DictionaryBase?

Класс DictionaryBase, как и класс ColllectionBase, реализует некоторые (но не все) члены, полученные посредством поддерживаемых им интерфейсов. Так же, как и в классе CollectionBase, в нем реализованы методы Clear() и Count(), а вот метод RemoveAt() — нет.. Однако IDictionary обладает методом Remove(), являющимся одним из тех методов, которые необходимо реализовать для создаваемых пользователем классов семейств, основанных на классе DictionaryBase.

90) Что такое индексатор?

Индексаторы используются также с “обычными классами”, то есть индексаторы работают не только с семействами. Например, если у класса есть скрытое поле, представляющее собой массив, то с помощью индексатора можно обратиться к элементу этого массива, используя имя экземпляра класса и номер элемента массива в квадратных скобках. То есть индексатор - это такой “умный” индекс для экземпляров класса.

91) Что такое класс CollectionBase?.

Класс DictionaryBase, как и класс ColllectionBase, реализует некоторые (но не все) члены, полученные посредством поддерживаемых им интерфейсов. Так же, как и в классе CollectionBase, в нем реализованы методы Clear() и Count(), а вот метод RemoveAt() — нет.. Однако IDictionary обладает методом Remove(), являющимся одним из тех методов, которые необходимо реализовать для создаваемых пользователем классов семейств, основанных на классе DictionaryBase.

92) Что такое перегрузка методов?.

Перегрузка методов – это один из способов, которым достигается полиморфизм в языке С#. Две и более функции могут иметь одно и то же имя, а отличаться набором аргументов в интерфейсе (описании).

93) Что такое перегрузка операций?

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

Общий синтаксис объявления перегруженной операции:

[атрибуты] спецификаторы operator тело операции,

где:

Спецификаторы – public,static,extern

operator – ключевое слово, определяющее перегруженную операцию

тело операции-действия, которые выполняются при использовании операции в выражении

Перегружать можно только стандартные операции.

94) Перечислите правила перегрузки операций.

  1. Операция должна быть объявлена как public static

  2. Параметры в операцию должны передаваться по значению (не ref, не out)

  3. Двух одинаковых перегруженных операций в классе не должно быть

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

Алгоритм перегрузки операции:

  1. Определить класс, которому данная операция будет назначена.

  2. Для перегрузки операций используется ключевое слово operator.

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

95) Перечислите унарные операции, разрешенные к

Перегрузка унарных операций

К унарным операциям, которые можно перегружать в языке С# относятся:

  • унарные + и –

  • логическое !,

  • ++,--

  • true, false – обычно перегружаются для типов SQL

Синтаксис объявления перегруженной унарной операции:

public static тип_возвр_знач operator унарная_операция (один параметр),

где параметр – это класс, для которого перегружается данная операция

Например,

public static myclass operator ++(myclass x)

public static int operator +(myclass x)

public static bool operator true(myclass x)

Перегруженная операция возвращает:

  • унарные + и –, ! величину любого типа

  • ++,-- величину типа класса

  • true, false – величину типа bool

Префиксные и постфиксные ++ и – не различаются при перегрузке.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]