Esercizi C#

Calcolare gli stipendi con il polimorfismo in C#

In questa lezione calcolerai il totale degli stipendi di diversi tipi di dipendenti tramite una classe base astratta.

Introduzione

Ogni tipo di dipendente ha il suo modo di calcolare lo stipendio: il dipendente con stipendio fisso e quello pagato a ore. Definendo una classe base astratta con il metodo Pay(), il codice che calcola gli stipendi può trattare tutti i dipendenti allo stesso modo.

La classe Salaried restituisce lo stipendio fisso, mentre Hourly calcola l'importo moltiplicando la tariffa oraria per le ore lavorate. L'array staff ha il tipo comune Employee, ma chiamando employee.Pay() il programma sceglie da solo il calcolo giusto per ogni tipo di dipendente. Il totale è 1000 + 20 × 10 = 1200.

Esempio C# eseguibile

C#
Esegui il codice →
Program.cs
using System;
using System.Linq;
abstract class Employee { public abstract decimal Pay(); }
class Salaried(decimal salary) : Employee { public override decimal Pay() => salary; }
class Hourly(decimal rate, int hours) : Employee { public override decimal Pay() => rate * hours; }
class Program
{
    static void Main()
    {
        Employee[] staff = { new Salaried(1000), new Hourly(20, 10) };
        Console.WriteLine(staff.Sum(employee => employee.Pay()));
    }
}
Risultato dell'esecuzione
1200

Esercitati con il debugger

Metti un breakpoint su un'assegnazione o una condizione importante, fai clic su Debug ed esamina i valori locali prima di passare alla riga successiva.

Esercitati con una sfida

Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.

Tutte le sfide