我在使计算器具有存储值的能力方面遇到了一些困难。计算器适用于除此之外的所有事情,我很困惑。我想我可能要声明一些常量或者我现在想念的东西。我是超级新人并感谢他们的帮助。这是我的代码。谢谢你的帮助。现在我没有错误,但也没有任何作用!我也应该这样做,所以当存储在内存中的值时,文本框中会出现“M”,但我认为从这部分开始更容易。
private void digitCalculate_Click(object sender, EventArgs e)
{
Button ButtonThatWasPushed = (Button)sender;
string ButtonText = ButtonThatWasPushed.Text;
decimal EndResult = 0;
decimal MemoryStore = 0;
if (ButtonText == "MC")
{
//Memory Clear
MemoryStore = 0;
return;
}
if (ButtonText == "MR")
{
//Memory Recall
txtDisplay.Text = MemoryStore.ToString();
return;
}
if (ButtonText == "MS")
{
// Memory subtract
MemoryStore -= EndResult;
return;
}
if (ButtonText == "M+")
{
// Memory add
MemoryStore += EndResult;
return;
}
}
答案 0 :(得分:2)
您需要拥有decimal MemoryStore = 0;
的表单级变量,因为您有功能级变量,当您点击0
按钮
digitCalculate
decimal MemoryStore = 0;
decimal EndResult = 0;
public Form1()
{
InitializeComponent();
}
private void digitCalculate_Click(object sender, EventArgs e)
{
Button ButtonThatWasPushed = (Button)sender;
string ButtonText = ButtonThatWasPushed.Text;
//decimal EndResult = 0;
//decimal MemoryStore = 0;
还要注意
您需要更改"MS"
逻辑并添加"M-"
if (ButtonText == "MS")
{
MemoryStore = Decimal.Parse(txtDisplay.Text);
return;
}
if (ButtonText == "M-")
{
// Memory subtract
MemoryStore -= EndResult;
txtDisplay.Text = MemoryStore.ToString();
return;
}
if (ButtonText == "M+")
{
// Memory add
MemoryStore += EndResult;
txtDisplay.Text = MemoryStore.ToString();
return;
}
答案 1 :(得分:0)
只需将MemoryStore变量更改为全局变量即可。目前,每次按下按钮时都会重新声明它,这意味着按钮按下之间数据会丢失。将它移到函数之外,它应该可以正常工作。