Лямбда-калькулятор C#

Мне нужно сделать простой калькулятор ( , -, /, *), где все методы должны представлять собой лямбда-выражения (или должны быть сделаны с помощью лямбда-оператора). Я пока не особо силён в лямбдах и анонимных методах, по этому немогли бы вы мне помочь с этим?

Буквально только сами тела методов, менюшку я сделаю сам.

Задача куда проще чем ты думаешь. На твоём месте я бы прошёл курс C# Essential, а именно урок про делегаты. Там Александр Шевчук очень подробно описал делегаты и всё что с ними можно делать.

Вот реализация класса Calculator , где тобою перечилсенные методы реализованы в виде лямбда-выражений.

namespace Calculator
{
    using System;
    public static class Calculator
    {
        public static Func Add = (a, b) => a   b;
        public static Func Subtract = (a, b) => a - b;
        public static Func Multiply = (a, b) => a * b;
        public static Func Divide = (a, b) => a / b;
    }
}

В данном случае мы создали для каждого метода экземпляр класса-делегата Func<>. Нужно это потому, что лямбда-выражение, по сути, является анонимным методом, тобишь методом без имени, а что б мы смогли этот метод без имены вызывать - мы привязали его к делегату. Можно было бы создать свой собственный делегат, но зачем если у нас есть очень удобный системный делегат?

Менюшку я не писал, но проверить работоспособность методов всё равно нужно, так что решил не стирать:

namespace Main
{
    using System;
    using Calculator;
    public class Program
    {
        public static void Main()
        {
            try
            {
                Console.WriteLine($"5   10 = {Calculator.Add(5, 10)}");
                Console.WriteLine($"5 - 10 = {Calculator.Subtract(5, 10)}");
                Console.WriteLine($"5 * 10 = {Calculator.Multiply(5, 10)}");
                Console.WriteLine($"5 / 10 = {Calculator.Divide(5, 10)}");
            }
            catch (DivideByZeroException)
            {
                Console.WriteLine("Division by zero is prohibited.");
            }
            Console.ReadKey();
        }
    }
}

Спасибо большое!

А как можно написать функцию взятия корня от какого-то числа (но не квадратный корень!)?

namespace Main
{
    using System;
    using Calculator;
    public class Program
    {

        public static void Main()
        {
            Console.OutputEncoding = System.Text.Encoding.UTF8;
            Console.InputEncoding = System.Text.Encoding.UTF8;

            try
            {
                Console.WriteLine($"5   10 = {Calculator.Add(5, 10)}");
                Console.WriteLine($"5 - 10 = {Calculator.Subtract(5, 10)}");
                Console.WriteLine($"5 * 10 = {Calculator.Multiply(5, 10)}");
                Console.WriteLine($"5 / 0 = {Calculator.Divide(5, 0)}");
                Console.WriteLine($"5 ^ 4.6 = {Calculator.Power(5, 10)}");
                Console.WriteLine($"625 ^ 1/3 = {Calculator.Root(625, 3)}");
            }
            catch (Exception exception)
            {
                Console.WriteLine($"Произошло исключение: {exception.Message}");
            }

            Console.ReadKey();

        }
    }
}


namespace Calculator
{
    using System;
    public static class Calculator
    {
        public static Func Add = (a, b) => a   b;
        public static Func Subtract = (a, b) => a - b;
        public static Func Multiply = (a, b) => a * b;
        public static Func Divide = (a, b) => a / b;
        public static Func Power = (a, b) => Math.Pow(a, b);
        public static Func Root = (a, b) => Math.Pow(a, 1.0 / b);
    }
}