Retorna resultado do método para o program C#

Tenho que fazer uma calculadora básica, que use classes separadas do programa e use métodos
O programa compila e executa porém os valores aparecem como 0, não entendi por que o valor não retorna.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace aula_4
{
    class Program
    {
        static void Main(string[] args)
        {
            calculadora C;
            C = new calculadora();


            Console.WriteLine("Digite um número ?");
            C.num1 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Digite outro número ?");
            C.num2 = Convert.ToDouble(Console.ReadLine());

            double recebesoma;
            double recebesub;
            double recebemult;
            double recebediv;

            recebesoma = C.soma;
            Console.WriteLine(recebesoma);

            recebesub = C.subtracao  ;
            Console.WriteLine(recebesub);

            recebemult = C.mult;
            Console.WriteLine(recebemult);

            recebediv = C.div;
            Console.WriteLine(recebediv);

        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace aula_4
{
    class calculadora
    {
        public double num1;
        public double num2;

        public double soma;
        public double subtracao;
        public double mult;
        public double div;
        
        


        public double mostrarsoma()
        {
            double soma = num1 + num2;
            return soma;        
        }

        public double mostrarsub()
        {
            double subtracao = num1 - num2;
            return subtracao;
        }
        public double mostrarmult()
        {
            double mult = num1 * num2;
            return mult;
        }
        public double mostrardiv()
        {
            double div = num1 / num2;
            return div;
        }

    }


}

Porque o seu código escrito não faz nada, não recebe valores e por isso não há operação imprimindo o valor (default) padrão que é 0