Search code examples
c#variablesconsoleprogram-entry-pointpublic

Can´t access several global variables


This is a basic calculator. The errors are on the last method called printResult. I can't set num1, num2, operador and resultado as global. I can access printResult on Class Calculadora but I can't access the variables of the Class Calculadora from the printResult method.

using System;

namespace supercalc
{
    public class calculadora
    {
        public static void  Main (string [] args)
        {
            float num1;
            float num2;
            string operador;
            float resultado;

            Console.Clear();

            Console.WriteLine("Insira o primeiro número");
num1 = int.Parse(Console.ReadLine());
Console.WriteLine("Insira o segundo número ");
num2 = int.Parse(Console.ReadLine());
Console.WriteLine("Insira o operador");
operador = Console.ReadLine();

switch(operador)
{
case "+":
resultado = num1 + num2;
automatizar.printResult();
break;
case "-" :
resultado = num1 - num2;
automatizar.printResult();
break;
case "*":
resultado = num1 * num2;
automatizar.printResult();
break;
case "/":
resultado = num1 / num2;
automatizar.printResult();
break;
default:
break;
}//END SWITCH

Console.WriteLine("Press any key to leave...");
Console.ReadKey();
}//END VOID MAIN
}//END CLASS CALCULADORA

public class automatizar
{
public  static void printResult()

{

    Console.WriteLine(supercalc.calculadora.num1 + calculadora.operador +calculadora.num2 + " é " + calculadora.resultado);
    //ERROR ON PREVIOUS LINE OF CODE : supercalc.calculadora doesnt have a definition for num1, operador, num2 and resultado
    //HELP
    //I CANT SET THEM AS GLOBAL!
}

}

}//END NAMESPACE

Solution

  • The variables you mention are not "global", they are local to Main()

    public static void  Main (string [] args)
    {
        float num1;
        float num2;
    

    You cannot access them from another function. The most direct way to make them accessible is to make them static class fields

    private static float num1;
    private static float num2;
    public static void  Main (string [] args)
    {