我试图从Main()方法中调用一个名为GetInputstring的方法中的值,然后继续执行下一步。 我被问到如何获得价值myInt并继续前进。
myInt (其中有两个*左右)在Main()中是获取错误的地方。
static void Main(string[] args)
{
GetInputstring(**myInt**);
if (**myInt** <= 0)
{
Write1(**myInt**);
}
else
{
Write2(**myInt**);
}
Console.ReadKey();
}
public int GetInputstring(int myInt)
{
string myInput;
//int myInt;
Console.Write("Please enter a number: ");
myInput = Console.ReadLine();
myInt = Int32.Parse(myInput);
return myInt;
}
static void Write1(int myInt)
{
while (myInt <= 0)
{
Console.WriteLine("{0}", myInt++);
}
}
static void Write2(int myInt)
{
while (myInt >= 0)
{
Console.WriteLine("{0}", myInt--);
}
}
答案 0 :(得分:0)
MyInt 是您的参数(传递给您的方法的值)并且未初始化。此外,你没有捕获你的返回值(应该是myInt)
您还需要将方法设置为静态,以便从静态方法调用它们,或者创建类的实例并在其上调用方法
这就是你如何得到你想要的东西:
static void Main(string[] args)
{
int myInt = GetInputstring(); //MyInt gets set with your return value
if (myInt <= 0)
{
Write1(myInt);
}
else
{
Write2(myInt);
}
Console.ReadKey();
}
public static int GetInputstring() //Deleted parameter because you don't need it.
{
string myInput;
//int myInt;
Console.Write("Please enter a number: ");
myInput = Console.ReadLine();
int myInt = Int32.Parse(myInput);
return myInt;
}
答案 1 :(得分:0)
您需要初始化myInt
变量并将其存储在本地或全局范围内。使用此变量,您需要使用从GetInputString()
获得的值来设置它,因为您没有将int作为ref
传递,它不会在方法中分配。您还需要将方法设置为静态,以便在不创建实例的情况下从Main
调用它们,例如:public static int GetInputstring()
int myInt = 0;
myInt = GetInputstring(myInt);
if (myInt <= 0)
{
Write1(myInt);
}
else
{
Write2(myInt);
}
Console.ReadKey();
或者(最好),你可以让GetInputString()
分配值,因为它不需要myInt
作为参数传递。
static void Main(string[] args)
{
int myInt = GetInputstring();
if (myInt <= 0)
{
Write1(myInt);
}
else
{
Write2(myInt);
}
Console.ReadKey();
}
public static int GetInputstring()
{
Console.Write("Please enter a number: ");
string myInput = Console.ReadLine();
return Int32.Parse(myInput);
}