-6
public partial class MainBookingform : System.Web.UI.Page
{

    static int numberOfBeachBookingInteger = 0;
    static int numberOfBushBookingInteger = 0;
    static int totalRevenueInteger = 0;


  protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            if (Session["beachBach"] != null)
            {
                numberOfBeachBookingInteger += 1;
                beachBachLabel.Text = numberOfBeachBookingInteger.ToString();
            }
            if (Session["beachBach"] != null)
            {
                numberOfBushBookingInteger += 1;
                bushBachLabel.Text = numberOfBushBookingInteger.ToString();
            }
        }
    }

こんにちは、プログラムをデバッグするときに、これらの整数が「0」から始まることを確認したいと思います。ただし、これらの整数に割り当てるこれらのラベルは常に「1」から始まります

助けてください!

4

5 に答える 5

3

これらの行の順序を入れ替えます

numberOfBeachBookingInteger += 1;
beachBachLabel.Text = numberOfBeachBookingInteger.ToString();

表示する前に増やしています。あなたが欲しいのは:

if (Session["beachBach"] != null)
{
    beachBachLabel.Text = numberOfBeachBookingInteger.ToString();
    numberOfBeachBookingInteger += 1;
}
if (Session["beachBach"] != null)
{
    bushBachLabel.Text = numberOfBushBookingInteger.ToString();
    numberOfBushBookingInteger += 1;
}
于 2013-08-26T13:30:10.500 に答える
2

1 つの ASP.NET プロセス内のすべてのセッションで静的変数が共有されることをご存知ですか? 2 人のユーザーがサイトにアクセスした場合、両方とも静的変数をインクリメントすることを意味します (ユーザーごとに必ずしも連続しているとは限りません)。

つまり、ラベルを作成したに値を増やしてみることができます。

if (Session["beachBach"] != null)
{
    bushBachLabel.Text = numberOfBushBookingInteger.ToString();
    numberOfBushBookingInteger += 1;
}
于 2013-08-26T13:31:27.767 に答える
0
if (Session["beachBach"] != null)
{
  beachBachLabel.Text = (numberOfBeachBookingInteger++).ToString();
}
于 2013-08-26T13:37:55.853 に答える
0

私が知る限り1、整数が最初に表示される前にすでに追加しています。

numberOfBeachBookingInteger += 1;
beachBachLabel.Text = numberOfBeachBookingInteger.ToString();

整数を として定義する-1と、 として表示され0ます。

static int numberOfBeachBookingInteger = -1;
static int numberOfBushBookingInteger = -1;

または、ロジックを次のように変えます

beachBachLabel.Text = numberOfBeachBookingInteger.ToString();
numberOfBeachBookingInteger += 1;

望ましい効果ももたらします。

于 2013-08-26T13:30:50.760 に答える