[英]C# - How can I call a variable in a method from another in the same class
public class MathProblem
{
public virtual void setproblem()
{
Random random = new Random();
int num1 = random.Next(100);
int num2 = random.Next(100);
int sum = num1 + num2;
}
public virtual void askuserforanswer()
{
int answer;
Console.WriteLine("Enter your answer");
answer = Convert.ToInt32(Console.ReadLine());
}
public virtual void displayproblem()
{
Console.WriteLine( num1.ToString() + " + " + num2.ToString() + " = ?");
}
}
我想打电话给NUM1和NUM2从setproblem方法displayproblem方法。 而且我不知道该怎么做。
请帮助...
你不能 在方法内部声明的变量仅在该方法内部可用。 为了能够在整个课程中使用它们,您必须在课程级别声明它们:
public class MathProblem
{
private Random random = new Random();
private int num1, num2, sum;
public virtual void SetProblem()
{
num1 = random.Next(100);
num2 = random.Next(100);
sum = num1 + num2;
}
public virtual void AskUserForAnswer()
{
int answer;
Console.WriteLine("Enter your answer");
answer = Convert.ToInt32(Console.ReadLine());
}
public virtual void DisplayProblem()
{
Console.WriteLine( num1.ToString() + " + " + num2.ToString() + " = ?");
}
}
您必须使用字段。
public class MathProblem
{
int num1;
int num2;
public virtual void setproblem()
{
Random random = new Random();
num1 = random.Next(100);
num2 = random.Next(100);
int sum = num1 + num2;
}
public virtual void askuserforanswer()
{
int answer;
Console.WriteLine("Enter your answer");
answer = Convert.ToInt32(Console.ReadLine());
}
public virtual void displayproblem()
{
Console.WriteLine( num1.ToString() + " + " + num2.ToString() + " = ?");
}
}
您可以在类级别使用字段:
public class MathProblem
{
int num1;
int num2;
... rest of code unchanged
}
如果您在课外需要这些,则可以使用以下属性:
public class MathProblem
{
public int num1 { get; private set;}
public int num2 { get; private set;}
... rest of code unchanged
}
或者,如果您希望能够从课堂之外进行设置:
public class MathProblem
{
public int num1 { get; set;}
public int num2 { get; set;}
... rest of code unchanged
}
还有一些提示:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.