As I'm new to C# I'm trying to make a basic console based calculator. It's getting one error though. Here is my code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FunctionBased_Calculator
{
class Program
{
public void menu()
{
Console.Clear();
Console.WriteLine("-=Calculator=-\n");
Console.WriteLine("(1.) Addition");
Console.WriteLine("(2.) Subtraction");
Console.WriteLine("(3.) Multiplication");
Console.WriteLine("(4.) Division");
Console.WriteLine("(5.) Help");
string answer = Console.ReadLine();
if (answer == "1")
{
addition();
}
else
{
if (answer == "2")
{
subtraction();
}
else
{
if (answer == "3")
{
multiplication();
}
else
{
if (answer == "4")
{
division();
}
else
{
if (answer == "5")
{
help();
}
else
{
Console.WriteLine("Invalid");
Console.ReadKey();
menu();
}
}
}
}
}
}
public void addition()
{
Console.WriteLine("-=Addition=-\n");
Console.WriteLine("Number 1:");
int num1 = Convert.ToInt32(Console.ReadLine());
Console.Clear();
Console.WriteLine("-=Addition=-\n");
Console.WriteLine("Number 2:");
int num2 = Convert.ToInt32(Console.ReadLine());
Console.Clear();
Console.WriteLine("-=Addition=-\n");
int sum = num1 + num2;
Console.WriteLine(sum);
Console.ReadKey();
menu();
}
public void subtraction()
{
Console.WriteLine("-=Subtraction=-\n");
Console.WriteLine("Number 1:");
int num1 = Convert.ToInt32(Console.ReadLine());
Console.Clear();
Console.WriteLine("-=Subtraction=-\n");
Console.WriteLine("Number 2:");
int num2 = Convert.ToInt32(Console.ReadLine());
Console.Clear();
Console.WriteLine("-=Subtraction=-\n");
int sum = num1 - num2;
Console.WriteLine(sum);
Console.ReadKey();
menu();
}
public void multiplication()
{
Console.WriteLine("-=Multiplication=-\n");
Console.WriteLine("Number 1:");
int num1 = Convert.ToInt32(Console.ReadLine());
Console.Clear();
Console.WriteLine("-=Multiplication=-\n");
Console.WriteLine("Number 2:");
int num2 = Convert.ToInt32(Console.ReadLine());
Console.Clear();
Console.WriteLine("-=Multiplication=-\n");
int sum = num1 * num2;
Console.WriteLine(sum);
Console.ReadKey();
menu();
}
public void division()
{
Console.WriteLine("-=Division=-\n");
Console.WriteLine("Number 1:");
int num1 = Convert.ToInt32(Console.ReadLine());
Console.Clear();
Console.WriteLine("-=Division=-\n");
Console.WriteLine("Number 2:");
int num2 = Convert.ToInt32(Console.ReadLine());
Console.Clear();
Console.WriteLine("-=Division=-\n");
int sum = num1 / num2;
Console.WriteLine(sum);
Console.ReadKey();
menu();
}
public void help()
{
Console.WriteLine("-=Help=-\n");
Console.WriteLine("If you got compiled this by yourself you don't need help.");
Console.ReadKey();
menu();
}
static void Main(string[] args)
{
menu();
}
}
}
Here is the error I get every time I try to run it (I'm using VS Express 2013) I get this error:
An object reference is required for the non-static field, method, or
property 'FunctionBased_Calculator.Program.menu()'
It's on line 133. I think it might have something to do with using menu() inside static void main. If anyone could help me that'd be great!