Sobes.tech
Junior — Middle

გაამართეთ, რა არის ტიპის გადატანა ობიექტზე ორიენტირებულ ენებში, გამოიყენეთ მაგალითები UpCast და DownCast

sobes.tech AI

პასუხი AI-სგან

ობიექტ-კონცეპტუალური ენებში, როგორიცაა C#, ტიპის გადატანა — ეს არის ობიექტის ერთ ტიპიდან მეორეზე გადატანა, რომელიც დაკავშირებულია მემკვიდრეობის ჰიეარარქიით.

UpCast — ეს არის გადატანა მემკვიდრეობის კლასიდან საწყის კლასში. იგი ყოველთვის უსაფრთხოა და არ საჭიროებს გამოკვეთილ მითითებას, რადგან მემკვიდრეობის კლასში შეიცავს ყველა წევრს საწყის კლასის.

class Animal {}
class Dog : Animal {}

Dog dog = new Dog();
Animal animal = dog; // UpCast — უხილავი გადატანა

DownCast — ეს არის გადატანა საწყის კლასიდან მემკვიდრეობის კლასში. ეს შეიძლება იყოს არასაიმედო, რადგან საწყისი ობიექტი არ არის აუცილებელი იყოს მემკვიდრეობის კლასის ნიმუში. ჩვეულებრივ, მოითხოვს გამოკვეთილ გადატანას და შემოწმებას.

Animal animal = new Dog();
Dog dog = (Dog)animal; // DownCast — გამოკვეთილი გადატანა

Animal anotherAnimal = new Animal();
Dog anotherDog = anotherAnimal as Dog; // დააბრუნებს null, თუ გადატანა შეუძლებელია

ამიტომ, UpCast გამოიყენება ზოგადობისთვის, ხოლო DownCast — ტიპის განსაზღვრისთვის უსაფრთხოების შემოწმებით.