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'
开始请帮忙!
答案 0 :(得分:5)
在将数字写入标签之前,您总是递增它们:
numberOfBeachBookingInteger += 1;
当然,标签中的值永远不会为0.
答案 1 :(得分: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;
}
答案 2 :(得分:2)
您是否意识到静态变量在一个ASP.NET进程中的所有会话中共享?这意味着,如果两个用户访问该站点,他们将两个增加静态变量(对于每个用户,它们不一定是连续的)?
那就是说,你可以尝试在创建标签后增加值:
if (Session["beachBach"] != null)
{
bushBachLabel.Text = numberOfBushBookingInteger.ToString();
numberOfBushBookingInteger += 1;
}
答案 3 :(得分:0)
据我所知,您在首次显示整数之前已经添加了1
。
numberOfBeachBookingInteger += 1;
beachBachLabel.Text = numberOfBeachBookingInteger.ToString();
您可以将整数定义为-1
,它们应显示为0
。
static int numberOfBeachBookingInteger = -1;
static int numberOfBushBookingInteger = -1;
或者,将您的逻辑转为
beachBachLabel.Text = numberOfBeachBookingInteger.ToString();
numberOfBeachBookingInteger += 1;
也带来了预期的效果。
答案 4 :(得分:0)
if (Session["beachBach"] != null)
{
beachBachLabel.Text = (numberOfBeachBookingInteger++).ToString();
}