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

时间:2016-10-11 15:19:47

标签: c# global procedures

 {
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的方法如何在程序之外访问,或者在这种情况下不可能你有解决方法吗?

1 个答案:

答案 0 :(得分:1)

你不能,而且这是地方变量的重点:外面的世界不应该关心它们的价值(甚至它们的存在)

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

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