为什么我的变量计数不正确?

时间:2011-08-23 00:07:53

标签: c# silverlight xaml variables

我的代码问题如下。当用户选择RadioButton(例如重新加载)并单击提交按钮时,我希望屏幕中的弹药计数器增加1.在RadioButton选择“fire”时,我希望弹药计数器减1。

我遇到的问题是弹药计数器似乎是用户选择背后的一个。所以:

  • ammo count = 1:用户选择重新加载
  • 弹药计数= 1:用户选择 重新加载
  • 弹药数= 2:用户选择火
  • ammo count = 3:用户选择 重新加载
  • 弹药数= 2:

^^看,弹药数量一直落后于用户选择。我该如何解决这个问题?

   namespace ShotgunApp
{
    public partial class SingleGame : PhoneApplicationPage
    {
        public static class AmmoCount
        {
            public static int userAmmo = startVars.startAmmo;
            public static int geniusAmmo = startVars.startAmmo;
        }


        public SingleGame()
        {
            InitializeComponent();
            GeniusAmmo.Text = "ammo: " + AmmoCount.geniusAmmo;
            UserAmmo.Text = "ammo: " + AmmoCount.userAmmo;


        }

        private void submit_Click(object sender, RoutedEventArgs e)
        {
            Move();
        }

        public void Move()
        { 
            if (uReload.IsChecked.HasValue && uReload.IsChecked.Value == true)
            {
                UserAmmo.Text = "ammo: " + AmmoCount.userAmmo++;

            }
            else if (uShield.IsChecked.HasValue && uShield.IsChecked.Value == true)
            {

            }
            else if (uFire.IsChecked.HasValue && uFire.IsChecked.Value == true)
            {
                UserAmmo.Text = "ammo: " + AmmoCount.userAmmo--;
            }
            else
            {

            }
        }
    }
}

1 个答案:

答案 0 :(得分:5)

AmmoCount.userAmmo++AmmoCount.userAmmo--(后缀运算符)正在递减和递增变量,但它们返回先前未更改的值。

您应该使用前缀运算符:(++AmmoCount.userAmmo)(--AmmoCount.userAmmo)