C# 尝试使用TextChanged as event乘法并将结果之和放入文本框

C# 尝试使用TextChanged as event乘法并将结果之和放入文本框,c#,math,textchanged,C#,Math,Textchanged,我刚开始使用C#和Visual Studio,但我遇到了一个问题 我试图使用TextChanged事件计算三个不同乘法的总值,因此每次我在用于乘法的文本框中输入数字时,total文本框都会更新 textbox4中的总结果始终为0。我做错了什么 这是我的密码 public double multip_result1; public double multip_result2; public double multip_result3; public void te

我刚开始使用C#和Visual Studio,但我遇到了一个问题

我试图使用TextChanged事件计算三个不同乘法的总值,因此每次我在用于乘法的文本框中输入数字时,total文本框都会更新

textbox4中的总结果始终为0。我做错了什么

这是我的密码

    public double multip_result1;
    public double multip_result2;
    public double multip_result3;

    public void textbox1_TextChanged(object sender, EventArgs e)
    {
       double a, b, multip_result1;
       a = Double.Parse(textbox1.Text);
       b = 4.50;

       multip_result1 = a * b;

       total();
    }

    public void textbox2_TextChanged(object sender, EventArgs e)
    {
        double d, f, multip_result2;
        d = double.Parse(textbox2.Text);
        f = 6.50;

        multip_result2 = d * f;

        total();
    }

    public void textbox3_TextChanged(object sender, EventArgs e)
    {
        double h, j, multip_result3;
        h = double.Parse(textbox3.Text);
        j = 8.50;

        multip_result3 = h * j;

        total();
    }

    public void total() 
    {
        double total_sum;
        total_sum = multip_result1 + multip_result2 + multip_result3;
        textbox4.Text = total_sum.ToString();
    }

您有本地变量
multi p_result1
multi p_result2
multi p_result3
,它们隐藏了同名字段,只需从事件处理程序中删除它们即可。因此,f.e.这是:

double a, b, multip_result1;
变成

double a, b;
否则,将计算值指定给该局部变量,该字段保持为0


如果要为字段分配相同的名称,也可以使用
this.fieldName
。但我强烈建议不要使用相同的名称来避免类似的问题。

在每个更改函数中,您都在初始化multip_result1、multip_result2和multip_result3

这意味着它没有设置更多的公共版本,因此当“total()”运行时,所有值仍然为零


“double a,b,multi p_result1;”应为“double a,b;”,并相应地更新其他函数。

在方法中声明与全局变量同名的变量会隐藏全局变量。你从来没有给在代码初始时声明的全局变量赋值,并且在totall中使用。我真不敢相信它竟然如此简单!非常感谢。