Перегруженные методы

Упражнения с использованием перегруженных методов.

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();
    }
}

Смотрите также: