2. 2§. Indeksatorning turi va uning parametrlari turlari haqida


Boshqa qiymatlardan foydalangan holda indeksatsiya qilish


Download 0.67 Mb.
bet13/18
Sana03.02.2023
Hajmi0.67 Mb.
#1151810
1   ...   10   11   12   13   14   15   16   17   18
Bog'liq
19.08 A Tojiyeva Saboxon Dasturlash kurs ishi

Boshqa qiymatlardan foydalangan holda indeksatsiya qilish


C # da indeksator parametr turi butun sonlar bilan chegaralanmaydi. Masalan, satrlar indeksator sifatida ishlatilishi mumkin. Bunday indeksator kollektsiyani mag'lubiyatni qidirish va tegishli qiymatni qaytarish orqali amalga oshirilishi mumkin. Aksessuarlar haddan tashqari yuklanishi mumkinligi sababli, mag'lubiyat va butun sonli versiyalar bir vaqtda mavjud bo'lishi mumkin.

2-misol


Ushbu misolda hafta kunlari nomlarini saqlaydigan sinf e'lon qilinadi. Accessor kun nomini mag'lubiyat qiymati sifatida qabul qiladi va mos keladigan butun sonni qaytaradi. Masalan, yakshanba 0, 1-dushanba va boshqalarni qaytaradi. get
C #Nusxalash
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");
}
}

2-holatdan foydalaning


C #Nusxalash
using 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 0.67 Mb.

Do'stlaringiz bilan baham:
1   ...   10   11   12   13   14   15   16   17   18




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling