You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# WPF计算器仅加法可用 减乘除无输出问题排查求助

问题根因

你给运算符控件rechnung_zeichen赋值的时候,减、乘、除三个运算符后面都多带了一个空格:

  • 减法赋值的是"- "(带尾部空格),但等号逻辑里判断的是"-"(无空格)
  • 乘法赋值的是"* "(带尾部空格),但等号逻辑里判断的是"*"(无空格)
  • 除法赋值的是": "(带尾部空格),但等号逻辑里判断的是":"(无空格)

只有加法赋值的"+"和判断条件完全一致,所以只有加法能匹配成功进入分支赋值结果,其他三个运算符的字符串匹配都失败,自然不会给结果控件赋值。

修复方案

要么把运算符赋值的尾部空格删掉,要么把判断条件里的运算符改成带空格的版本,建议统一去掉无意义的空格,修改三个运算符点击事件的赋值逻辑即可:

public void minus_Click(object sender, RoutedEventArgs e)
{
    // 去掉尾部空格
    rechnung_zeichen.Content = "-";
}
public void geteilt_Click(object sender, RoutedEventArgs e)
{
    // 去掉尾部空格
    rechnung_zeichen.Content = ":";
}

public void mal_Click(object sender, RoutedEventArgs e)
{
    // 去掉尾部空格
    rechnung_zeichen.Content = "*";
}

其他可优化点

  • 代码里的四行Convert.ToString(a/b/c/d)没有任何作用,你没有把转换后的字符串赋值给任何变量,完全可以删掉
  • 现在用int做运算会有整数除法截断的问题,比如3/2会得到1而不是1.5,如果需要小数结果可以把变量类型换成double
  • 可以把rechnung_2.HasContent的判断提到所有分支外面,不用每个条件都重复写一遍
  • 除法运算要加除零判断,避免用户输入除数为0的时候程序崩溃

内容的提问来源于stack exchange,提问作者user16574704

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:48:05