-1

我正在尝试用 c# 制作一个计算器,我希望将 - 连接成一个字符串或类似的东西。预期输出也应该减去这两个变量。前任,

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,但它将“-”作为减号而不是减去这两个数字。我试过逃避它(不确定我是否正确逃避它)但它没有帮助:/

4

4 回答 4

3

利用

string.concat(minusnumber , "-");

它可能会帮助你。您可以在 concat 方法上使用 n 个对象。

于 2013-10-28T05:03:46.453 回答
2

从您所写的内容来看,变量readyinminus_Click是本地变量,minus_Click而不是您可能想要的全局变量。

代替:

string ready = minusnumber +  "-"; 

也许你的意思是:

ready = minusnumber +  "-"; 

编辑

现在问题已经修复,看来真正的问题是“为什么MessageBox.Show(ready);显示“32-32”而不是 0?如果这问题,原因是您正在显示变量的值ready。这是一个字符串。你开始它"32-"然后添加"32"。此字符串连接的结果是"32-32". 为了执行算术评估,您需要编写代码来解析字符串并进行评估。或者找一个Eval()为包含算术表达式的字符串编写方法的人。

于 2013-10-28T05:02:03.000 回答
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;
于 2013-10-28T05:08:05.970 回答
0

对于制作计算器,您必须使用波兰表示法或 RPN

于 2013-10-28T06:15:10.207 回答