Перевантажені методи

Вправи з використанням перевантажених методів.

1. Сигнатура методу

Завдання: Визначіть сигнатуру приведеного методу:

int Summa(int a, int b = 0, int c = 0)
{
    return a + b + c;
}
Рішення
Summa(int, int, int)

2. Максимальне з трьох чисел

Завдання: Напишіть програму, яка знаходить максимальне з трьох дробових чисел, що вводяться з клавіатури, використовуючи перевантаження методу для пошуку максимального з двох значень.

Рішення
using System;

class Program
{
    static float Maximum(float x, float y)
    {
        if (x > y)
            return x;
        else
            return y;
    }

    static float Maximum(float x, float y, float z)
    {
        var max = Maximum(x, y);
        if (max > z)
            return max;
        else
            return z;
    }

    static void Main(string[] args)
    {
        Console.Write("Введіть перше число: ");
        var f1 = Convert.ToSingle(Console.ReadLine());
        Console.Write("Введіть друге число: ");
        var f2 = Convert.ToSingle(Console.ReadLine());
        Console.Write("Введіть третє число: ");
        var f3 = Convert.ToSingle(Console.ReadLine());

        Console.WriteLine($"Максимальне з трьох чисел {Maximum(f1, f2, f3)}");
        Console.ReadLine();
    }
}

3. Множення чисел

Завдання: Напишіть перевантажені методи, у скороченій формі(лямбда), які приймають на вхід дві цілі числа, перемножують їх та в залежності від типу додають до результату: 1 – для uint, 2 – для int, 3 – для long.

Рішення
using System;

class Program
{
    static uint MultX(uint b1, uint b2) => b1 * b2 + 1;

    static int MultX(int n1, int n2) => n1 * n2 + 2;

    static long MultX(long l1, long l2) => l1 * l2 + 3;

    static void Main(string[] args)
    {
        Console.WriteLine($"uint 2*3 = {MultX(2U, 3U)}");
        Console.WriteLine($"int  2*3 = {MultX(2, 3)}");
        Console.WriteLine($"long 2*3 = {MultX(2L, 3L)}");
        Console.ReadLine();
    }
}

Дивіться також: