C#:在另一个方法中使用变量

时间:2015-08-09 16:12:35

标签: c# variables methods tcp global-variables

我正在用C#编写TCP套接字服务器,需要记录服务器的工作目录并在另一个方法中使用它。这是目录的设置位置:

public ServerMainline()
    {
        string cwd = Directory.GetCurrentDirectory();
        Console.WriteLine(cwd);
        TcpListener server = null;
        try
        {
            ThreadPool.SetMaxThreads(50, 50);

            server = new TcpListener(IPAddress.Any, 50039);
            server.Start();

            while (true)
            {
                Console.WriteLine("Waiting for a new Client...");
                TcpClient client = server.AcceptTcpClient();

                ThreadPool.QueueUserWorkItem(serviceClient, client);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Server mainline: SocketException: {0}", e);
        }
        finally
        {
            server.Stop(); 
            server.Server.Close(); 
        }
    }

这就是我需要再次使用它的地方:

switch (option)
{
    case "C":
    case "c":
        Console.WriteLine("You have selected option C. Please wait...");
        ServerMainline serverFiles = new ServerMainline();
        string[] files = serverFiles.OptionC(cwd);
        break;
}

这里的switch语句不完整,我只需要能够在那里使用cwd。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

有三种选择......

  1. 在案例方法中重新分配cwd

    string cwd = Directory.GetCurrentDirectory();

  2. 将cws定义为全局变量(在方法之外)

  3. 您可以将cws作为方法的参数传递

    eg- methodname(string cwd)