Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Заключительные замечания об индексаторах
Заключительные замечания об индексаторах
Чтобы получить настоящую экзотику, вы можете создать индексатор, который имеет множество параметров. Предположим, что у нас есть пользовательская кол-лекция, которая хранит элементы в двумерном массиве. В этом случае вы можете создать метод индексатора, доказанный ниже.
public class SameContainer {
private int[,] my2DinArray = new int[10, 10];
public int this[int row, int column] {/* прочитать или установить значение 2D-массива * /}
}
В заключение следует заметить, что индексаторы могут определяться и для типа интерфейса .NET, что обеспечивает реализующим интерфейс типам возможность его настройки. Вот пример такого интерфейса.
public interface IEstablishSubObjects {
// Этот интерфейс определяет индексатор, возвращающий
// строки на основе числового индекса.
string this[int index] {get; set;}
}
Пожалуй, об индексаторах C# уже сказано достаточно. Перейдем к рассмотрению еще одного подхода, используемого в некоторых (но не во всех) языках программирования .NET: это перегрузка операций.
- Создание пользовательских индексаторов
- Внутреннее представление индексаторов типов
- Заключительные замечания об индексаторах
- Перегрузка операций
- Перегрузка бинарных операций
- Перегрузка унарных операций
- Перегрузка операций проверки на тождественность
- Перегрузка операций сравнения
- Внутреннее представление перегруженных операций
- Использование перегруженных операций в языках, не поддерживающих перегрузку операций
- Заключительные замечания о перегрузке операций
- Пользовательские преобразования типов
- Создание пользовательских подпрограмм преобразования
- Определение подпрограмм неявного преобразования
- Внутреннее представление пользовательских подпрограмм преобразования
- Ключевые слова C#, предназначенные для более сложных конструкций
- Директивы препроцессора C#
- Резюме
- Внутреннее представление пользовательских подпрограмм преобразования
- 4.13. Замечания по работе Firewall
- Замечания по работе с файлами
- 7.5. Замечания по безопасности
- 9.5. Замечания по работе squid
- 12.4.6. Дополнительные замечания
- Библиографические замечания
- 1.4.5. Заключительные соображения по поводу «GNU Coding Standards»
- Замечания о функциях установления соединения
- 13.12 Замечания о производительности
- 14.3.2. Дополнительные замечания по поводу библиотеки shell.rb
- Некоторые замечания о точности