Indeksatorlar va xossalar
Ko`p o`lchovli indeksatorlar
Download 20.68 Kb.
|
1 2
Bog'liqИндексаторлар ва хоссалар
Ko`p o`lchovli indeksatorlar
Bir nechta parametrlarni qabul qiladigan indeksatorlarni ham yaratish mumkin: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class MyArr { int[,] arr; // ikki o`lchovli massiv o`lchami public int rows, cols; public int Length; public MyArr(int rows, int cols) { this.rows = rows; this.cols = cols; arr = new int[this.rows, this.cols]; Length = rows * cols; } // Indeksator public int this[int index1, int index2] { get { return arr[index1, index2]; } set
arr[index1, index2] = value; } } } class Program { static void Main(string[] args) { Random ran = new Random(); Console.WriteLine("Arr1: \n"); MyArr arr1 = new MyArr(4,5); for (int i = 0; i < arr1.rows - 1; i++) { for (int j = 0; j < arr1.cols - 1; j++) { arr1[i, j] = ran.Next(1,20); Console.Write(arr1[i, j] + "\t"); } Console.WriteLine(); } Console.ReadLine(); } } } Xossalar Sinf a'zolarining yana bir turi bu xossadir. Odatda, xossa maydon murojaat usullari bilan birlashtiradi. Sinf a'zolarining yana bir turi bu xossadir. Odatda, xossa maydon murojaat usullari bilan birlashtiradi. Xossalar indeksatorlarga juda o'xshash. Xususan, Xossa nom va aksessorlar get va set dan iborat. Aksessorlardan o'zgaruvchining qiymatini olish va o'rnatish uchun foydalaniladi. Xossalarning asosiy afzalligi shundaki, uning nomini oddiy o'zgaruvchiga o'xshab ifoda va o`zlashtirish operatorlarida ham ishlatish mumkin, lekin aslida, uning aksessorlari get va set avtomatik ravishda chaqiriladi. Indeksatorning aksessorlar get va set shunga o'xshash tarzda ishlatiladi.Quyida Xossalarning umumiy shakli keltirilgan: tur nom { get { // maydondan o`qish uchun aksessor kodi } set
// maydonga yozish uchun aksessor kodi } } bu erda tur xossaning konkret turi, masalan int, nom - bu xossaning o`zlashtirilgan nomi. Xossa aniqlangandan so'ng, xossaga har qanday murojaat avtomatik ravishda mos keladigan akssorni chaqiishga olib keladi. Shuningdek, set aksessor xossaga o`zlashtirilgan qiymat ya`ni yashirin value parametrini qabul qiladi. Shuni yodda tutish kerakki, xususiyatlar xotirada qaerda saqlanadigan joylarni aniqlamaydi, faqat maydonlarga murojaatni boshqaradi. Bu shuni anglatadiki, xossaning o'zi maydonni ta'minlamaydi va shuning uchun maydon xossadan mustaqil ravishda aniqlanishi kerak. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class UserInfo { int a; string s = "Alex"; public int Age { get { if (a <= 0) return 1; return a; } set
a = value; } } public string Name { get { return s; } } } class Program { static void Main(string[] args) { UserInfo ui = new UserInfo(); ui.Age = 26; // string myName = ui.Name; Console.ReadLine(); } } } Download 20.68 Kb. Do'stlaringiz bilan baham: |
1 2
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling