我对C#很新,但我每天都在学习越来越多。今天,我正在尝试构建一个简单的控制台计算器,需要帮助将函数中的变量传递给Main(),这样我就可以在if-else中使用它来确定应该执行哪个函数。
public static void Main(string[] args)
{
int decision = Introduction();
Console.Clear();
Console.WriteLine(decision);
Console.ReadLine();
}
public static int Introduction()
{
int decision = 0;
while (decision < 1 || decision > 7)
{
Console.Clear();
Console.WriteLine("Advanced Math Calculations 1.0");
Console.WriteLine("==========================");
Console.WriteLine("What function would you like to perform?");
Console.WriteLine("Press 1 for Addition ++++");
Console.WriteLine("Press 2 for Subtraction -----");
Console.WriteLine("Press 3 for Multiplication ****");
Console.WriteLine("Press 4 for Division ////");
Console.WriteLine("Press 5 for calculating the Perimeter of a rectangle (x/y)");
Console.WriteLine("Press 6 for calculating the Volume of an object (x/y/z)");
Console.WriteLine("Press 7 for calculating the standard deviation of a set of 10 numbers");
decision = int.Parse(Console.ReadLine());
if (decision < 1 || decision > 7)
{
decision = 0;
Console.WriteLine("Please select a function from the list. Press Enter to reselect.");
Console.ReadLine();
}
else
{
break;
}
}
return decision;
}
当我尝试在Main()中使用决策时,它说“在当前上下文中不存在名称决定”。
我很难过,并试图谷歌搜索无济于事。
干杯
SUCCESS!
答案 0 :(得分:1)
从Introduction
返回值。该值是方法的本地值,并在其他地方使用它,您需要返回它并分配给局部变量。或者,你可以使decision
成为一个静态类变量,但这不是一个特别好的做法,至少在这种情况下。 Introduction
方法(不是特别好的名称,IMO,它应该是GetCalculationType()
因为它正在做的事情)通常不应该有任何副作用。
public static void Main( string[] args )
{
int decision = Introduction();
...
}
public static int Introduction()
{
int decision = 0;
...
return decision;
}
答案 1 :(得分:1)
Main()
是您应用的入口点。然后它调用您的方法Introduction()
,在堆栈上添加一个新的堆栈帧。因为您在Introduction方法中声明了决策变量,所以Main方法不知道它。
如果您在两种方法之外声明您的决策变量,您应该能够从以下任何一个引用它:
int decision;
static void Main(string[] args)
{
// code here
}
static void Introduction()
{
// code here
}
答案 2 :(得分:0)
您不能在main中使用decision
变量,因为它是函数 Introduction
的本地变量。
您可以使decision
成为静态类变量,但更好的方法是从Introduction
返回值并将其分配给main中的局部变量。