2. 2§. Indeksatorning turi va uning parametrlari turlari haqida
§.Indeksatorning turi va uning parametrlari turlari haqida
Download 0.67 Mb.
|
19.08 A Tojiyeva Saboxon Dasturlash kurs ishi
- Bu sahifa navigatsiya:
- 1-misol
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-misolQuyidagi 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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling