Sobes.tech
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.