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


§.Indeksatorning turi va uning parametrlari turlari haqida


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

2.2§.Indeksatorning turi va uning parametrlari turlari haqida.


Indeksatorning turi va uning parametrlari turlari kamida indeksatorning o'zi bilan bir xil kirish darajasiga ega bo'lishi kerak. Kirish darajalari haqida ko'proq ma'lumot olish uchun Access Modifiers- ga qarang .
Interfeys bilan indeksatorlardan foydalanish haqida ko'proq ma'lumot olish uchun Interface Indexers- ga qarang .
Indeksator imzosi uning rasmiy parametrlarining soni va turlarini aniqlaydi. Unda indeksatorning turi yoki uning rasmiy parametrlari nomlari ko'rsatilmagan. Agar bitta sinf uchun bir nechta indeksator e'lon qilingan bo'lsa, ular turli xil imzolarga ega bo'lishi kerak.
Indeksator qiymati o'zgaruvchi sifatida tasniflanmagan va shuning uchun ref yoki out parametri sifatida o'tkazib bo'lmaydi .
Indeksatorga boshqa tillarda ishlatilishi mumkin bo'lgan nom berish uchun ushbu misolda ko'rsatilgandek System.Runtime.CompilerServices.IndexerNameAttribute dan foydalaning :
C #Nusxalash
// Indexer declaration
[System.Runtime.CompilerServices.IndexerName("TheItem")]
public int this[int
{
// get and set accessors
}
Ushbu indeksator nomga ega bo'ladi, TheItemchunki u indeksator nomi atributi bilan bekor qilingan. Odatiy indeksator nomi . Item

1-misol


Quyidagi misol xususiy qator maydonini tempsva indeksatorni qanday e'lon qilishni ko'rsatadi . Indeksator namunaga to'g'ridan-to'g'ri kirishni ta'minlaydi . Indeksatorni ishlatish o'rniga siz massivni umumiy element deb e'lon qilishingiz va uning elementlariga to'g'ridan-to'g'ri kirishingiz mumkin ( ). tempRecord[i] tempRecord.temps[i]
C #Nusxalash
public class TempRecord
{
// Array of temperature values
float[] temps = new float[10]
{
56.2F, 56.7F, 56.5F, 56.9F, 58.8F,
61.3F, 65.9F, 62.1F, 59.2F, 57.5F
};


// To enable client code to validate input
// when accessing your indexer.
public int Length => temps.Length;


// Indexer declaration.
// If index is out of range, the temps array will throw the exception.
public float this[int index]
{
get => temps[index];
set => temps[index] = value;
}
}
E'tibor bering, getConsole.Write accessor indeksatorning kirish huquqlarini belgilashda chaqiriladi , masalan bayonotda . Shuning uchun, agar ruxsat beruvchi bo'lmasa , kompilyatsiya vaqtida xato yuzaga keladi. get
C #Nusxalash
using System;
using System;


class Program
{
static void Main()
{
var tempRecord = new TempRecord();


// Use the indexer's set accessor
tempRecord[3] = 58.3F;
tempRecord[5] = 60.1F;


// Use the indexer's get accessor
for (int i = 0; i < 10; i++)
{
Console.WriteLine($"Element #{i} = {tempRecord[i]}");
}


// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
/* Output:
Element #0 = 56.2
Element #1 = 56.7
Element #2 = 56.5
Element #3 = 58.3
Element #4 = 58.8
Element #5 = 60.1
Element #6 = 65.9
Element #7 = 62.1
Element #8 = 59.2
Element #9 = 57.5
*/
}

Download 0.67 Mb.

Do'stlaringiz bilan baham:
1   ...   8   9   10   11   12   13   14   15   ...   18




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