![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Описание. В этом примере объявляется класс, в котором хранятся дни недели
В этом примере объявляется класс, в котором хранятся дни недели. Объявляется метод доступа get, который принимает строку (название дня недели) и возвращает соответствующее целое число. Например, воскресенье возвращает 0, понедельник возвращает 1 и т. д. Код C# // Using a string as an indexer value class DayCollection { string[] days = { " Sun", " Mon", " Tues", " Wed", " Thurs", " Fri", " Sat" };
// This method finds the day or returns -1 private int GetDay(string testDay) {
for(int j = 0; j < days.Length - 1; j++) { if (days[j] == testDay) { return j; } }
throw new System.ArgumentOutOfRangeException(testDay, " testDay must be in the form \" Sun\", \" Mon\", etc"); }
// The get accessor returns an integer for a given string public int this[string day] { get { return (GetDay(day)); } } }
class Program { static void Main(string[] args) { DayCollection week = new DayCollection(); System.Console.WriteLine(week[" Fri" ]);
// Raises ArgumentOutOfRangeException System.Console.WriteLine(week[" Made-up Day" ]);
// Keep the console window open in debug mode. System.Console.WriteLine(" Press any key to exit."); System.Console.ReadKey(); } } // Output: 5
Существуют два основных способа повышения надежности и безопасности индексаторов. · Внедрите стратегию обработки ошибок на тот случай, если код клиента передаст недопустимое значение индекса. В первом примере, приведенном ранее в этом разделе, класс " TempRecord" предоставляет свойство " Length", позволяющее коду клиента проверить введенные данные перед тем, как передать их индексатору. Также можно поместить код обработки ошибки в индексатор. Задокументируйте для пользователей любые исключения, которые были созданы внутри метода доступа индексатора. Дополнительные сведения см. в разделе Правила разработки исключений. · Установите максимальное обоснованное ограничение доступности для методов доступа get и set. Это особенно важно для метода доступа set. Дополнительные сведения см. в разделе Асимметричные методы доступа (Руководство по программированию в C#).
Задачи Пример индексаторов Основные понятия Руководство по программированию в C# Ссылки Индексаторы (руководство по программированию в C#) Свойства (руководство по программированию в C#)
|