如何从过程外部的过程访问变量

How to access variables from a procedure outside of the procedure

 {
static int[] location = { 0, 0 };
static int player = 0;

static void runGame()
{
    int start = Convert.ToInt32(Console.ReadLine());
    if (start == 1)
    {
        location1();
    }


    else if (start == 2)
    {
        location2();
    }


    else if (start == 3)
    {
        location3();
    }


    else if (start == 4)
    {
        location4();
    }
}

static void swapPlayer()
{
    if (player == 1)
    {
        player = 0;
    }
    else
    {
        player = 1;
    }
}

static void location1()
{

    Console.WriteLine(" Player " + (player + 1) + " , you are in the kitchen          you can go to either \n1: Living room \n2: Bathroom ");
    int input = int.Parse(Console.ReadLine());
    if (input == 1) {
        location[player] = 2;
        start = 2;
        swapPlayer();
        location2();
    }
    else if (input == 2) {
        location[player] = 3;
        start = 3;
        swapPlayer();
        location3();
    }




}

static void location2()
{

    Console.WriteLine(" Player " + (player + 1) + " you are in the living room you can go to either \n1: Kitchen\n2: Bedroom ");
    int input = int.Parse(Console.ReadLine());
    if (input == 1) {
    location[player] = 1;
    start = 1;
    swapPlayer();
    location1();
    }
    else if (input == 2) {
    location[player] = 4;
    start = 4;
    swapPlayer();
    location4();
    }

}

static void location3()
{

    Console.WriteLine(" Player " + (player + 1) + " you are in the bathroom you can go to either \n1: Kitchen \n2: Bedroom  ");
    int input = int.Parse(Console.ReadLine());
    if (input == 1)
    {
    location[player] = 1;
    start = 1;
    swapPlayer();
    location1();

    }
    else if (input == 2)
    {
    location[player] = 4;
    start = 4;
    swapPlayer();
    location4();
    }

}

static void location4() {

    Console.WriteLine(" Player " + (player + 1) + ", you are in the kitchen you can go to either \n1: Living room \n2: Bathroom ");
    int input = int.Parse(Console.ReadLine());

    if (input == 1)
    {
    location[player] = 1;
    start = 1;
    swapPlayer();
    location2();

    }
    else if (input == 2)
    {
    location[player] = 4;
    start = 4;
    swapPlayer();
    location3();
    }


} 

static void Main(string[] args)
{

    Console.WriteLine("welcome , find the ghost and navigate through the house");
    Console.Write("You are in the main hall way you can go to any of these rooms");
    Console.Write(" kitchen, living room, bath room , bedroom");
    Console.WriteLine("choose a room number 1 , 4 from the list ");
    int start = Convert.ToInt32(Console.ReadLine());

    bool play = true;

    while (play== true)
    {
        runGame();
    }




} 
    }

这是我正在制作的一个简单的 2 人文本冒险背后的代码,我想知道我在 runGame 过程中的什么地方使用了变量 start 我如何才能在过程之外访问它,或者在对于哪种情况,您有其他解决方案来解决这个问题。

你不能,这就是局部变量的意义所在:外部世界不应该关心它们的值(甚至它们的存在)

如果您想从多个方法访问 vatiable,则必须将其提升为(在本例中为静态)class 成员:

static int[] location = { 0, 0 };
static int player = 0;
static int start;