1

我在 ASP.net / C# 中做一个 Web 应用程序,其中在 Page_Load 事件上生成一个随机数 (num1)。在网页中有一个按钮,每当用户单击该按钮时,都会生成一个新的随机数 (num2),并在 Button_Click 事件中将它添加到前一个随机数 (+)。这继续无限进行(继续在最后一次添加中添加一个新的随机数)。我尝试过使用会话,但没有找到明确的示例。我非常感谢您的建议和帮助。

代码:

private static Random random = new Random();
        private int randomNumber(int min, int max)
        {
            return random.Next(min, max);
        }


        protected void Page_Load(object sender, EventArgs e)
        {
             number1 = randomNumber(1, 10);
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            int number2 = randomNumber(1, 10);
            Session["number_x"] = number2;
            number2 += number1;
        }

假设在 page_load 上生成的随机数是 4。然后用户单击生成新随机数的按钮让我们说 5。现在 5 应该添加到 4 = 9。如果用户再次单击按钮再次生成一个新数字说 5,所以现在会话应该有 14 等等。

谢谢。

4

2 回答 2

4

我想你想做这样的事情:

 protected void Button1_Click(object sender, EventArgs e)
 {
    lock (Session.SyncRoot)
    {
       int numberInSession = (int) Session["number_x"];
       int number2 = randomNumber(1, 10);
       int newNumber = numberInSession + number2;
       Session["number_x"] = newNumber 
     }
}
于 2012-04-11T15:39:33.403 回答
2

嗯,如果我正确阅读了您的问题,这应该可以:

protected void Button1_Click(object sender, EventArgs e)
{
    int number2 = randomNumber(1, 10);
    if(Session["number_x"] != null)
    {
        int number1 = Int.Parse(Session["number_x"]);
        Session["number_x"] = number1 + number2;
    }
    else
    {
        Session["number_x"] = number2;
    }
}

基本上,您必须检查会话变量中是否已经存在值。

如果会话变量中已经存在某些内容,则需要将其解析为int,然后将其添加到新的随机数中并将其存储回会话变量中。

如果里面没有任何东西,你只需要存储新的随机数。

于 2012-04-11T15:39:05.673 回答