Режа: Индексаторлар



Download 0,51 Mb.
Pdf ko'rish
bet4/5
Sana23.02.2022
Hajmi0,51 Mb.
#138797
1   2   3   4   5
Bog'liq
1-Maruza matni (1)

Хосса-қийматлар 
Хосса-қиймат  усул сарлавҳасида қуйидагича кўринишда белгиланади:
тип ном 
Битта хосса-қийматга эга бўлган усул сарлавҳасига намуна:
void P( int x ) 
Хосса номи иҳтиёрийча бўлиши мумкин. х хосса локал ўзгарувчи бўлиб, ўз 
қийматини чақирувчи функциядан усулга мурожаат вақтида олади. Усулга аргумент 
қийматининг нусхаси узатилади.
Маълумотларни узатиш механизми қуйидагича: усулга узатилаётган ўзгарувчи 
сақланаётган хотира ячейкасидан унинг қиймати олинади ва нусхаси хотиранинг махсус 
қисмига — хоссалар соҳасига кўчирилади. Усул ўз ишини тугатганидан кеийн бу соҳа 
бўшатилади. Бундай усул фақат усулга бошланғич маълумотларни узатишда қўлланилади.
Усул чақирилганда қиймат бўича узатиладиган хосса ўрнида ифода туриши ҳам 
мумкин. Масалан, айтайлик, чақирувч фунцияда ўзгарувчилар тавсифланган бўлсин хамда 
уларга усулга мурожаат қилингунча қийматлар берилган бўлсин: 
int x = 1;
sbyte c = 1; 
ushort y = 1; 
У холда саралвҳаси илгари тавсифланган P усулга қуйидаги мурожаатлар 
синтактик жиҳатдан тўғри ҳисобланади: сически правильными: 
P( x ); P( c ); P( y ); P( 200 ); P( x / 4 + 1 ); 
Хосса-ҳаволалар 
Хосса-ҳаволаларнинг аломатлари парамтердан олдин кўрсатилган ref хизматчи 
сўзи билан белгиланади: 
ref тип ном 
бутун типдаги батта хосса-ҳаволага эга бўлган усул сарлавҳаси қуйидагича:
void P( ref int x ) 
Усул чақирилганда хоссалар соҳасига аргументнинг манзили кўчирилади ва усул 
бу манзил орқали аргумент сақланаётган хотира ячейкаси билан ишлашга рухсат олади. 
Усул бевосита чақирувчи функциядаги ўзгарувчи билан ишлайди, ва демак, уни 
ўзгартириши мумкин. Шунинг учун агар усулда хоссаларнинг қийматларини 
ўзгартиришга зарурат бўлса, улар фақат ҳаволалар орқали узатилиши лозим.
Диққат 
Усул чақирилганда хосса-ҳаволалар ўрнида фақат типи мос бўлган ва 
инициаллаштирилган ўзгарувчи туриши мумкин. Парамтер номидан олдин 
ref
хизматчи 
сўзи ёзилади. 
Апраметр-қиймат ва хосса-ҳаволаларни узатишга намуна келтирамиз (3-листинг). 
using System; 
namespace ConsoleApplication1 
{ class Class1 
{


Dasturlash asoslari 1-ma’ruza 
O’qituvchi: Saidjalol Hasanov 
---------------------------------------------------------------- 
static void P( int a, ref int b ) 

a = 44; b = 33; 
Console.WriteLine( "усулнинг ичида {0} {1}", a, b ); 

static void Main() 

int a = 2, b = 4; 
Console.WriteLine( "мурожаатгача {0} {1}", a, b ); 
P( a, ref b ); 
Console.WriteLine( "мурожаатдан кейин {0} {1}", a, b ); 



3-листинг. Хосса-қийматлар ва хосса-ҳаволалар 
Дастурнинг натижалари: 
мурожаатгача 2 4 
усул ичида 44 33 
мрожаатдан кейин 2 33 
Агар усулга қийматли типларнинг қийматлари эмас, балки синф экземплярлар
яъни ҳавола типидаги миқдорлар узатилса бу холат бошқача бўлиши мумкин. Соддалик 
учун объектларни доимо ҳаволалар бўйича узатилади деб ҳисоблаш мумкин.

Download 0,51 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish