«Решайте примеры, используя индексы и свойства»
Индексирование с использованием других значений
Download 52.88 Kb.
|
- Bu sahifa navigatsiya:
- Пример 2
- Пример использования 2
Индексирование с использованием других значенийВ C# тип параметра индексатора не ограничивается целочисленными значениями. Например, в качестве индексатора могут использоваться строки. Такой индексатор можно реализовать путем поиска строки в коллекции с возвратом соответствующего значения. Поскольку методы доступа можно перегружать, строковые и целочисленные версии могут сосуществовать. Пример 2Этот пример объявляет класс, который хранит названия дней недели. Метод доступа get принимает название дня в виде строкового значения и возвращает соответствующее целое число. Например, для Sunday возвращается значение 0, для Monday — 1 и т. д. using System; // Using a string as an indexer value class DayCollection { string[] days = { "Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" }; // Indexer with only a get accessor with the expression-bodied definition: public int this[string day] => FindDayIndex(day); private int FindDayIndex(string day) { for (int j = 0; j < days.Length; j++) { if (days[j] == day) { return j; } } throw new ArgumentOutOfRangeException( nameof(day), $"Day {day} is not supported.\nDay input must be in the form \"Sun\", \"Mon\", etc"); } } Пример использования 2using System; class Program { static void Main(string[] args) { var week = new DayCollection(); Console.WriteLine(week["Fri"]); try { Console.WriteLine(week["Made-up day"]); } catch (ArgumentOutOfRangeException e) { Console.WriteLine($"Not supported input: {e.Message}"); } } // Output: // 5 // Not supported input: Day Made-up day is not supported. // Day input must be in the form "Sun", "Mon", etc (Parameter 'day') } Download 52.88 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling