this kalit so’zi
Ushbu glava oxirida this asosiy so’zini ishlatilishini ko’rib chiQamiz. Uslub chaQirilganda unga avtomatik ravishda chaQirilayotgan ob’ektga sso’lka sifatida noaniQ argument beriladi (ya’ni uslub ishlaydigan ob’ektga nisbatan). Bu ko’rsatma this deyiladi. This ko’rsatmasi Qanday ishlashini tushunish uchun Pwr sinfi Qo’llaniladigan programmani ko’ramiz.
Using system
Class Pwr {
Public double b;
Public int e;
Public double val;
Public Pwr (double num, int exp) {
b – num;
e – exp;
val – 1;
of (expqq0) return;
for( ; exp>0; exp--) val – val * b;
public double get_pwr () {
return val;
class DemoPwr {
public static void Main () {
Pwr x – new Pwr(4.0, 2)
Pwr y – new Pwr(2.5, 1)
Pwr z – new Pwr(5.7, 0);
Console.WriteLine (x.b. Q “ B “ Q x.e. Q “-y stepeni – “ Q x.get_pwr());
Console.WriteLine (y.b. Q “ B “ Q y.e. Q “-y stepeni – “ Q y.get_pwr());
Console.WriteLine (z.b. Q “ B “ Q z.e. Q “-y stepeni – “ Q .get_pwr());
Bilasizki, uslubda ichida boshQa sinf vakillariga ob’ekt yoki nomi bilan amalga oshiriladi. Shuning uchun get_pwr uslubi ichida
return val;
operatori bajarilganda chaQirilayotgan ob’ekt bilan bog’langan val o’zgaruvchan nusxasi chaQiriladi. Lekin shu operatorni Quyidagicha yozish mumkin:
return this.val;
Bu yerda this sso’lkasi get_pwr (; uslubi chaQirgan ob’ektga ko’rsatadi. Demak this val o’zgaruvchan ushbu ob’ektda val o’zgaruvchanning nusxasi hisoblanadi. Masalan, get_pwr () uslubi x ob’ektga nisbatan chaQirilgan bo’lsa, unda this sso’lkasi ilgarigi operatorda ob’ekt x ni ko’rsatadi. Aytish mumkinki, operatorni this so’zini ishlatmasdan yozish yozuvning QisQa formasi hisoblanadi.
Quyida pwr ni barcha sinfi this kalit so’zi bilan ko’rsatilgan:
using system;
class pwr {
public double b;
public int e;
public double val;
public Pwr(double num, int exp) {
this.b – num;
this.e – exp;
this.val – 1;
if(exp—0) return;
for( ; exp0; exp--) this.val q this.val this.b;
}
public double get_pwr() {
return this.val;
}
}
Hech Qanday yaxshi programmist C# tilida Pwr sinfini bunday yozmaydi, chunki bu hech Qanday ustunlik bermaydi. Lekin ayrim hollarda this sso’lkasi foydali bo’lishi mumkin. Masalan, C# sintaksisi o’zgaruvchan va ularnig nusxalari uchun bir xil nomni ishlatishni imkonini beradi. Bu sodir bo’lganda, lokal nom o’zgaruvchan nusxasini berkitadi va unga yo’lni faQatgina this sso’lkasi orQali topsa bo’ladi. Masalan, Quyida keltirilgan Pwr () konstruktori sintaksik bor hisoblanadi, lekin bu stilni ishlatish tavsiya etilmaydi.
Public Pwr(double b, int e) {
This.b – b;
This.e – e;
Val – 1;
if(e- -0) return;
for(; e0; e- -) val – val * b;
}
Ushbu versiyada Pwr() konstruktori parametrlar nomi va nusxalar nomi bir xil, shuning uchun o’zgaruvchanlar berkitiladi. Agar siz this sso’lkasini ishlatayotgan bo’lsangiz o’zgaruvchan nusxasini “ochishiz” mumkin.
Do'stlaringiz bilan baham: |