Junior — Middle
Obyektga yo'naltirilgan tillarda tur o'tkazish nima ekanligini, UpCast va DownCast misollari bilan tushuntiring
sobes.tech AI
AIdan javob
Obyektga yo'naltirilgan tillarda, masalan, C# da, turni o'zgartirish — bu ob'ektni bir turdan boshqa turga, merosxo'rlik hierarhiyasiga bog'liq bo'lgan turga o'tkazish.
UpCast — bu voris sinfdan asosiy sinfgacha bo'lgan o'tkazish. Bu har doim xavfsiz va aniq ko'rsatishni talab qilmaydi, chunki voris sinf asosiy sinfning barcha a'zolarini o'z ichiga oladi.
class Animal {}
class Dog : Animal {}
Dog dog = new Dog();
Animal animal = dog; // UpCast — noaniq o'tkazish
DownCast — bu asosiy sinfdan voris sinfgacha bo'lgan o'tkazish. Bu xavfli bo'lishi mumkin, chunki asosiy ob'ekt har doim voris sinfning nusxasi bo'lishi shart emas. Odatda, aniq o'tkazish va tekshirish talab qilinadi.
Animal animal = new Dog();
Dog dog = (Dog)animal; // DownCast — aniq o'tkazish
Animal anotherAnimal = new Animal();
Dog anotherDog = anotherAnimal as Dog; // Agar o'tkazish mumkin bo'lmasa, null qaytaradi
Shunday qilib, UpCast umumlashtirish uchun ishlatiladi, DownCast esa xavfsizlik tekshiruvi bilan turni aniqlash uchun ishlatiladi.