Metodlar hám olardı jaratıw. Parametrli hám parametrsiz metodlar. Baha qaytarıwshı hám qaytarmaytuǵın metodlar


Download 25.79 Kb.
Sana15.07.2023
Hajmi25.79 Kb.
#1660413
Bog'liq
Metodlar hám olardı jaratıw


Metodlar hám olardı jaratıw. Parametrli hám parametrsiz metodlar. Baha qaytarıwshı hám qaytarmaytuǵın metodlar
C# programmalastırıw tilinde konstruktor degen termin bar.
Konstruktor - bul klass atı menen daǵaza etilgen metod bolıp, onıń metod kórinisinde tek metod atınıń hám parametrler dizimin óz ishine aladı. Ol qaytarıw túrin óz ishine almaydı. Tómendegi mısalda metodqa klass konstruktorı arqalı shaqırıq qılıw kórsetilgen.
Metod shaqırıwı sonday kórinedi:
Obiekt_nomi. Metod_nomi ();
Sonday etip, metodtı konsolga shıǵardıq. Bunday halda, eger siz nátiyjeni saqlawıńız kerek bolsa, ol halda siz metoddıń atqarılıw nátiyjesin ózgeriwshige bahalashingiz múmkin:
Ózgeriwshi = Obiekt_nomi. Metod_nomi ();
Metod ózgeriwshin emes hám baha saqlanatuǵın yadtı emes, bálki bahanıń ózin aladı. Metod avtomatikalıq túrde metod qawıslarında kórsetilgen atlar menen óz ózgeriwshilerin jaratadı.
Metod bul ámeller izbe-izligi retinde atqarıladı. Metod parametrlerdi belgilew arqalı shaqırıwshı koddan maǵlıwmat alıwı hám qaytıw túrin kórsetip, shıǵıwdı shaqırıwshı kodqa qaytarıwı múmkin. Qaytıw túri void metodı ushın anıqlanıwı múmkin, bul metod hesh qanday baha qaytarmaydı. Metod, sonıń menen birge bahanı, ref hám out parametrleri arqalı da shıǵarılıwı múmkin.
Programmalardı islep shıǵıwda kod muǵdarın kemeytiw, onıń o'qilishini jaqsılaw hám bul kórsetpelerdi qayta isletiwdi ańsatlastırıw ushın kórsetpelerdiń birpara qatarları tákirarlanadı, olardı metodqa birlestiriw múmkin.
Eger ózgeriwshiler birpara bahalardı saqlasa, ol halda metodlar málim háreketlerdi atqaratuǵın kórsetpeler kompleksin óz ishine aladı. Tiykarlanıp, metod - bul birpara háreketlerdi atqaratuǵın atalǵan kod blokı bolıp tabıladı.
Metod denesinde bir neshe bahalardı qaytarıw múmkin. Qanday etip bir emes, eki bahanı qaytarıw múmkin? Eger bahalar birdey túrdegi bolsa, olardı dızbek retinde qaytarıw múmkin, eger olar hár túrlı túrde bolsa, strukturadan paydalanıw múmkin. Biraq odan da jaqsılaw jol bar - bir parametrdi qaytarıw ma`nisi retinde qaytarıw hám basqa parametrdi parametrlerden biri arqalı qaytarıw múmkin.
C# ózgeriwshilerdi anıq túrdegi yamasa jasırın tur retinde járiyalaw imkaniyatın beredi. Anıq túrdegi ózgeriwshiler tap daǵaza etilgen tur sıyaqlı kirgiziw talap etiledi, jasırın tur bul - kompilyator olarda saqlanǵan mániske qaray islew waqtında turni anıqlaydı. C# de var gilt sózi jasırın túrdegi ózgeriwshilerdi járiyalaw ushın isletiledi.
Eger koddıń bir bólegi eki yamasa odan artıq ret tákirarlansa, kórsetpelerdi bólek metodqa ótkeriw logikalıq jaqtan tuwrı boladı.
“static” gilt sózi menen daǵaza etiletuǵın metodlar Statikalıq metodlar dep ataladı.
Statikalıq metodlar barlıq obiektler ushın ulıwma bolǵan hám málim bir obiektke baylanıslı bolmaǵan minez-qulqlardı belgileydi. Statikalıq metodlarǵa kirisiw ushın sinf/struktura atı da isletiledi.
Static gilt sóz tekǵana metodlarǵa, bálki ózgeriwshilerge de tiyisli boladı, sebebi bul gilt sóz eń kóp metodlar menen isletiledi.
Biz klass metodına kiriwshi bolǵanımızda, bul klasstıń obiektin jaratılıwmasımız kerek. Biraq programma jumısqa túskende Main () metodı sistema tek qaysı metodtı shaqırıw kerekligini tabadı, lekin onı klass jaratpay shaqırıw múmkinligi statikalıq gilt sózi arqalı shaqırıw múmkin.
Statikalıq metodlarǵa klass jaratpay kiriwińiz múmkin! Biraq tezlik penen sheklew payda boladı - statikalıq metod tek bul metod ishinde daǵaza etilgen ózgeriwshilerden paydalanıwı múmkin yamasa metoddan sırtda, lekin olar statikalıq bolıwı kerek. Bunday metod statikalıq bolmaǵan sırtqı maǵlıwmatlarǵa kirey almaydı, sebebi obiekt jaratılmaǵan hám eger kimdir obiektti jaratqan bolsa, ol jaǵdayda statikalıq metod hám maǵlıwmatlar oǵan tiyisli emes, sol sebepli jumısqa túsirilmagan maǵlıwmatlardan paydalanıw múmkin emes.
Statikalıq metodlar hám ózgeriwshiler sistema tárepinen avtomatikalıq túrde jaratıladı hám obiektke emes, klasqa biriktiriladi. Yaǵnıy joybarǵa tiyisli hám jańa obiekt jumısqa túsirilgende statikalıq ózgeriwshiler ushın yad ajratilmaydi. Klasstan qansha obiekt jaratılıwmasıngizdan qaramastan, mudamı statikalıq ózgeriwshiniń tek bir versiyası boladı.
Statikalıq ózgeriwshilerdi qanday jumısqa túsiriw múmkin? Bunı ápiwayı konstruktorda ámelge asırıw múmkin, lekin keyin klasstıń qálegen obiekti jaratılǵanda ózgeriwshi qayta ornatıladı. Konstruktorda qanday da tekseriwdi ámelge asırıwıńız múmkin.
Eń jaqsı metod - ápiwayı konstruktor sıyaqlı klass atı menen birdey, lekin static gilt sózi menen daǵaza etilgen statikalıq konstruktordan paydalanıw :
static Shed ()
{
ObjectNumber++;
}
Bul konstruktor tómendegi ayrıqshalıqlarǵa iye:
• sinfdan jaratılǵan obiektler sanınan qaramastan, tek bir ret atqarıladı ;
• u parametrlerge ıyelewi múmkin emes, yaǵnıy onı qayta júklew múmkin emes, bir neshe konstruktor jaratıw múmkin bolmaydı hám ol tek joqarıda aytıp ótilgeni sıyaqlı atqarıladı ;
konstruktorda kirisiw modifikatorlari joq, sebebi ol sırtdan shaqırilmaydi, ol klassta birinshi obiekt jaratılǵanda yamasa statikalıq klass aǵzasına birinshi ret kirisiwde avtomatikalıq túrde shaqırıladı.
Parametrler
Biz kóbinese metodlarda sheklengen muǵdardaǵı argumentlardan paydalanamız. Eger programmadaǵı metodta argumentlar sanı kopaysa koddıń korinishini xiralashadi yaǵniy shıraysızlasadı.params gilt sózi arqalı biz sheksiz argumentlarni dızbek korinishida kirgazishimiz hám kodtı talay ıqshamlashtirishimiz múmkin.params Parametrli metodlardı shaqırganimizda, biz tómendegilerdi kirgiziwimiz múmkin:
• Dızbek elementleri túrine tiyisli argumentlarning útir menen ajıratılǵan dizimi:
int yigindi = Sum (19, 9, 7, 17, 39, 47);
• Belgilengen túrdegi argumentlar dızbeki:
object[] obj = new object[] { " hamroliyev", 'a', 19, 9, 12. 8 };
//Add metodın shaqıramız.
Add (obj);
• Hesh qanday argumentsiz. Hesh qanday argument jibermasak, params dizimi uzınlıǵı nolge teń baladı.
Sum ();
params gilt sózi programmist metodta paydalaniletuǵın parametrler sanı haqqında aldınan maǵlıwmatqa iye bolmaǵan jaǵdaylarda paydalı boladı. Metod konstruktorında params gilt sazınan tek bir ret paydalanıwımız múmkin.params ga tiyisli argumentdan keyin qasımcha argument beriw múmkin emes.
params gilt sózinen paydalanıwǵa ápiwayı mısal :
using System;
namespace dot_net_uz
{
class Program
{
// params parametrdi óz ishine alǵan metod
public static int Sum (params int[] sanlarRoyxati)
{
int sum = 0;
foreach (int i ın sanlarRoyxati)
{
sum += i;
}
return sum;
}
static void Main (string[] args)
{
//Sum metodın shaqıramız.
int [] yigindi = Sum (19, 9, 7, 17, 39, 47);
Console. WriteLine ($" yigindi : {yigindi}");
Console. ReadKey ();
}
}
}
Output:
yigindi : 138
yigindi : 138
0
Sizde " params gilt sózinen paydalanmastán da metodlarda dızbekten paydalanıw múmkinku, params ni ne keregi bar? " degen soraw tuwılıwı múmkin. Juwap sonday: params gilt sózi metoddan paydalanıwdı talay qolaylastıradı :
using System;
namespace dot_net_uz
{
class Program
{
// params parametrdi óz ishine alǵan metod
public static int Sum (params int[] sanlarRoyxati)
{
int sum = 0;
foreach (int i ın sanlarRoyxati)
{
sum += i;
}
return sum;
}
static void Main (string[] args)
{
int [] a={19, 9, 7, 17, 39, 47};
int yigindi = Sum (a); // params isletmesten de metodtı bul usılda shaqırıw múmkin edi
Console. WriteLine ($" yigindi : {yigindi}");
// paramsdan paydalanǵandagina metodtı sonday shaqırıw múmkin:
Console. WriteLine ($" yigindi : {Sum (19, 9, 7, 17, 39, 47) }");
// Eger paramsdan paydalanbaǵan bolsańız koddıń bul bóleginde qátelik júzege keledi,
// paramsdan paydalansangiz metodtı sol jaǵdayda da shaqırıw múmkin
Console. WriteLine (Sum ());
Console. ReadKey ();
}
}
}
Object túrinen hám paramsdan paydalanıw metodtı hár qanday túrdegi hám hár qanday muǵdardaǵı qabıl ete alıwına múmkinshilik beredi:
using System;
namespace dot_net_uz
{
class Program
{
// params parametrdi óz ishine alǵan metod
// object túrindegi parametrlerden paydalanılǵan funksiya
public static void Print (params object[] royxat)
{
for (int i = 0; i < royxat. Length; i++)
{
// Nátiyjelerdi baspadan shıǵarıw
Console. WriteLine (royxat[i]);
}
}
static void Main (string[] args)
{
object[] obj = new object[] { " hamroliyev", 'a', 19, 9, 12. 8 };
Console. WriteLine (" 1-usıl :");
//Print metodın shaqıramız.
Print (obj);
Console. WriteLine ();
Console. WriteLine (" 2-usıl :");
//Print metodın shaqıramız.
Print (19, " dot-net", 20, " Hamroliyev");
Console. WriteLine (" 3-usıl :");
Print ();
Console. ReadKey ();
}
}
}
Download 25.79 Kb.

Do'stlaringiz bilan baham:




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