Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Описание. В этом примере объявляется класс, в котором хранятся дни недели






В этом примере объявляется класс, в котором хранятся дни недели. Объявляется метод доступа 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#)

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.