1

Page_Load イベントで乱数 (num1) が生成される ASP.net/C# で Web アプリケーションを実行しています。Web ページにはボタンがあり、ユーザーがそのボタンをクリックするたびに、新しい乱数 (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 に答える