Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计算器中的=运算有问题_C#_Visual Studio_Split_Switch Statement_Case - Fatal编程技术网

C# 计算器中的=运算有问题

C# 计算器中的=运算有问题,c#,visual-studio,split,switch-statement,case,C#,Visual Studio,Split,Switch Statement,Case,如果我在计算器上单击5+5,它将在我的第一个文本框中显示5+5(我有两个文本框:一个用于求和,一个用于结果)。按下= 我认为是这样的,因为当我将鼠标悬停在Sum.Text上时,它正在显示5+5,我需要将其拆分,但我不知道如何进行 这是我的密码 private void Addition_Click(object sender, EventArgs e) { dbl_FirstNumber = Convert.ToDouble(Sum.Text); Sum.AppendText

如果我在计算器上单击
5+5
,它将在我的第一个文本框中显示
5+5
(我有两个文本框:一个用于求和,一个用于结果)。按下
=

我认为是这样的,因为当我将鼠标悬停在Sum.Text上时,它正在显示
5+5
,我需要将其拆分,但我不知道如何进行

这是我的密码

private void Addition_Click(object sender, EventArgs e)
{
    dbl_FirstNumber = Convert.ToDouble(Sum.Text);
    Sum.AppendText ("+");
    Operation = 1;
}

private void equals_Click(object sender, EventArgs e)
{
    switch (Operation)
    {
        case 1:
            Result.Text = Convert.ToString(Convert.ToDouble(Sum.Text) + dbl_FirstNumber);    
            break;   
        case 2:
            Result.Text = Convert.ToString(Convert.ToDouble(Sum.Text) - dbl_FirstNumber);
            break;                                                                          
        case 3:                                                                            
            Result.Text = Convert.ToString(Convert.ToDouble(Sum.Text) * dbl_FirstNumber);
            break;
        case 4:
            Result.Text = Convert.ToString(Convert.ToDouble(Sum.Text) / dbl_FirstNumber);
            break;                    
        }
    }
}                                                                                    

使用建议的方法


嗯,你的问题比你想象的要大得多。C#编译器无法知道,当您输入诸如
5+5
之类的文本时,您需要此操作的结果。您必须以任何方式解析字符串,以提取所有运算符和数字。不过,您可以看看本教程:如何解析字符串//刚刚看到链接,谢谢,我将把它签入一个名为Ncalc()的项目中。它能够计算字符串的数学运算符@HimBromBeere:至少可以说,那个“基本”计算器教程是极不雅观的。我真的不能建议遵循那个教程。回家后我会看一看,另一个不添加外部库的更优雅的解决方案是使用DataTable()Compute()方法。().
private void equals_Click(object sender, EventArgs e)
{
    Result.Text = new System.Data.DataTable().Compute(Sum.Text, null);    
}