我正在尝试在c#中创建一个计算器,我希望将一个 - 连接成一个字符串或类似的东西。预期的输出也应减去两个变量。 EX,
string ready;
private void minus_Click(object sender, EventArgs e)
{
long minusnumber = 32;
ready = minusnumber + "-";
}
.
.
.
private void equals_Click(object sender, EventArgs e)
{
long equalsNumber1 = 32;
ready += equalsNumber1;
MessageBox.Show(ready);
}
和控制台输出将为0 但是它将“ - ”视为减去而不减去这两个数字。 香港专业教育学院尝试逃避它(不确定我是否确实逃脱了它)并且没有帮助:/
答案 0 :(得分:3)
使用
string.concat(minusnumber , "-");
它可能对你有所帮助。你可以在concat方法上使用n个对象。
答案 1 :(得分:2)
根据您所写的内容,ready
中的变量minus_Click
是minus_Click
的本地变量,而不是您可能想要的全局变量。
而不是:
string ready = minusnumber + "-";
也许你的意思是:
ready = minusnumber + "-";
修改强>
现在问题已修补,似乎真正的问题是“为什么MessageBox.Show(ready);
显示”32-32“而不是0?”如果是问题,原因是您显示变量ready
的值。这是一个字符串。您是在"32-"
启动的,然后添加了"32"
。此字符串连接的结果为"32-32"
。为了执行算术评估,您需要编写代码来解析字符串并进行评估。或者找一个为包含算术表达式的字符串编写Eval()
方法的人。
答案 2 :(得分:2)
我认为这可能是你希望实现的目标,但有点不清楚。这将取负数并取消它。那么当你将前一个数字添加到减去数字时,它实际上会减去。唯一的问题是您的ready
变量似乎是一个字符串。
private void minus_Click(object sender, EventArgs e)
{
long minusnumber = 32;
ready = -minusnumber;
}
也许ready
应该很长。当您获得用户输入时,您可以使用TryParse:
string userText = "54";
long userInput;
Int64.TryParse(userText, out userInput);
ready -= userInput;
答案 3 :(得分:0)
对于make计算器,您必须使用波兰表示法或RPN