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


§.Indeksatorlarda bir nechta parametrlarni qo'llash


Download 0.67 Mb.
bet15/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

2.4§.Indeksatorlarda bir nechta parametrlarni qo'llash


Shuningdek, indeksator bir nechta parametrlarni qabul qilishi mumkin. Aytaylik, bizda do'kon ikki o'lchovli massiv yoki matritsa sifatida aniqlangan sinf mavjud:

Bitta
2018-04-02 121 2
3
to'rt
besh
6
7
8
9
o'n
o'n bir
12
o'n uch
14
15

class Matrix
{
private int[,] numbers = new int[,] { { 1, 2, 4}, { 2, 3, 6 }, { 3, 4, 8 } };
public int this[int i, int j]
{
get
{
return numbers[i,j];
}
set
{
numbers[i, j] = value;
}
}
}

Endi indeksatorni aniqlash uchun ikkita indeks ishlatiladi - i va j. Va dasturda biz ikkita indeks yordamida ob'ektga murojaat qilishimiz kerak:

Bitta
2018-04-02 121 2
3
to'rt

Matrix matrix = new Matrix();
Console.WriteLine(matrix[0, 0]);
matrix[0, 0] = 111;
Console.WriteLine(matrix[0, 0]);

Shuni yodda tutish kerakki, indeksator statik bo'lishi mumkin emas va faqat sinf namunasiga tegishli. Shu bilan birga, indeksatorlar virtual va mavhum bo'lishi mumkin va olingan sinflarda qayta belgilanishi mumkin.

Bloklarni oling va o'rnating


Xususiyatlarda bo'lgani kabi, indeksatorlar, agar kerak bo'lmasa, get yoki set bloklarini qoldirib yuborishi mumkin. Masalan, o'rnatilgan blokni olib tashlaymiz va indeksatorni faqat o'qish imkoniyatiga ega qilamiz:

Bitta
2018-04-02 121 2
3
to'rt
besh
6
7
8
9
o'n
o'n bir

class Matrix
{
private int[,] numbers = new int[,] { { 1, 2, 4}, { 2, 3, 6 }, { 3, 4, 8 } };
public int this[int i, int j]
{
get
{
return numbers[i,j];
}
}
}

Shuningdek, kirish modifikatorlari yordamida bloklarni olish va o'rnatish uchun kirishni cheklashimiz mumkin. Masalan, to'siqni shaxsiy qilib yarataylik:

Bitta
2018-04-02 121 2
3
to'rt
besh
6
7
8
9
o'n
o'n bir
12
o'n uch
14
15

class Matrix
{
private int[,] numbers = new int[,] { { 1, 2, 4}, { 2, 3, 6 }, { 3, 4, 8 } };
public int this[int i, int j]
{
get
{
return numbers[i,j];
}
private set
{
numbers[i, j] = value;
}
}
}

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