c# - C# 中的变量作用域

标签 c# variables scope

我的网络服务程序应该生成一个随机代码并将其返回给客户端程序。现在它返回“”作为代码而不是随机生成的代码。我的变量范围有什么问题?谢谢。

public class Service1 : System.Web.Services.WebService
{
    private string code = "";

    [WebMethod]
    public void StartGame()
    {
        // Pick a secret code
        // R, B, G, O, T, W, P, Y
        Random random = new Random();
        for (int i = 0; i < 4; i++)
        {
            int num = random.Next(8) + 1;
            if (num == 1)
                this.code += "R";
            else if (num == 2)
                this.code += "B";
            else if (num == 3)
                this.code += "G";
            else if (num == 4)
                this.code += "O";
            else if (num == 5)
                this.code += "T";
            else if (num == 6)
                this.code += "W";
            else if (num == 7)
                code += "P";
            else if (num == 8)
                this.code += "Y";
        }
    }

    [WebMethod]
    public string MakeGuess(string guess)
    {
        return this.code;
    }
}

最佳答案

问题是这些方法在该类的两个独立实例上被调用。当 HTTP 请求进入时,每个方法都会在该类的新实例上调用一次,然后该类将被丢弃。由于 HTTP 协议(protocol)的无状态特性,服务器将不知道这些请求以某种方式相关。

关于c# - C# 中的变量作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1658591/

相关文章:

c# - LINQ 基于最新日期的条目总和

c# - winform进度条运行期间执行代码

javascript - 将输入值设置为 Javascript 变量

jquery - 如何正确从 jQuery ajax 成功函数返回数组?

c++ - 带初始化的while语句

c# - 如何在注册表中保存密码

c# - 查找内存泄漏

c++ - 为什么函数调用中的可变数组长度可以在 C 中使用,但在 C++ 中不能使用?

javascript - 设置最小变量

Maven:如何添加为运行时提供但显式用于测试的依赖项?