我的以下代码有问题。当用户选择 RadioButton(例如重新加载)并单击提交按钮时,我希望屏幕中的弹药计数器增加 1。在 RadioButton 选择“fire”时,我希望弹药计数器减少 1。
我遇到的问题是弹药计数器似乎落后于用户选择。所以:
- 弹药数 = 1:用户选择装弹
- 弹药数 = 1:用户选择 重新加载
- 弹药数 = 2:用户选择开火
- 弹药数 = 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
{
}
}
}
}
最佳答案
AmmoCount.userAmmo++
和 AmmoCount.userAmmo--
(后缀运算符)正确递减和递增变量,但它们返回之前未更改的值。
您应该使用前缀运算符:(++AmmoCount.userAmmo)
和 (--AmmoCount.userAmmo)
。
关于c# - 为什么我的变量计数不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7154981/