簡體   English   中英

C#-如何在同一個類的另一個方法中調用變量

[英]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() + " = ?");

    }

}

我想打電話給NUM1NUM2setproblem方法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() + " = ?");

    }       
}

另外,請注意,根據微軟的大寫約定 ,我已將方法名稱更改為Pascal大小寫

您必須使用字段。

 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
}

還有一些提示:

  • 如果使用屬性,請使用CamelCasing(例如Num1而不是num1)
  • 還可以在CamelCasing中更改方法名稱(例如SetProblem,AskUserForAnswer,DisplayProblem)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM