Sobes.tech
Junior — Middle

Можете ли објаснити принцип унитарне (паткасте) типизације и како се он примењује у програмирању?

sobes.tech АИ

Одговор од АИ

Tip tipa patke (duck typing) je koncept u programiranju gde se tip objekta ne određuje njegovom klasom ili nasledjivanjem, već prisustvom određenih metoda i svojstava.

Fraza "Ako nešto izgleda kao patka, pliva kao patka i kvoca kao patka, onda je to patka" odražava suštinu: važan nije tip objekta, već njegovo ponašanje.

U C# to nije ugrađeni mehanizam kao u dinamičkim jezicima, ali se može imitirati putem interfejsa ili dinamičkog tipa (dynamic). Na primer, ako objekat implementira potrebne metode, može se koristiti bez stroge provere tipa.

Primer sa dynamic:

void MakeItQuack(dynamic duck) {
    duck.Quack();
}

class Duck {
    public void Quack() {
        Console.WriteLine("Kvak!");
    }
}

MakeItQuack(new Duck());

Ovde je važno da objekat koji se prosleđuje ima metodu Quack, u suprotnom će doći do greške tokom izvršavanja.