-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

5

在将数字写入标签之前,您总是递增它们:

numberOfBeachBookingInteger += 1;

因此,标签中的值当然永远不会为 0。

于 2013-08-26T13:30:14.573 回答
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

您是否知道静态变量在一个 ASP.NET 进程中的所有会话之间共享?这意味着如果两个用户访问该站点,他们都会增加静态变量(对于每个用户来说,它们不一定是连续的)?

也就是说,您可以尝试在创建标签增加值:

if (Session["beachBach"] != null)
{
    bushBachLabel.Text = numberOfBushBookingInteger.ToString();
    numberOfBushBookingInteger += 1;
}
于 2013-08-26T13:31:27.767 回答
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 回答
0
if (Session["beachBach"] != null)
{
  beachBachLabel.Text = (numberOfBeachBookingInteger++).ToString();
}
于 2013-08-26T13:37:55.853 回答