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

使用类实现勾股定理计算为何返回0?求解决方案

勾股定理类实现返回0的问题排查与解决

问题原因

  1. 未使用自定义类执行计算逻辑:按钮点击事件里仅定义了初始值为0的局部变量_Som2,完全没有实例化Pyt类,也没调用类中实现的计算方法,直接输出这个初始值0。
  2. 类构造函数存在冗余参数:Pyt类的构造函数声明了_Som和_Som2两个参数,但代码中既未使用这两个参数,也不需要它们参与计算,属于无效定义。
  3. (可选)命名风格不规范:当前字段和方法的命名(如_Som、_Som2)易造成混淆,不符合C#常规命名约定,但不影响功能运行。

解决方案

步骤1:修复Pyt类的定义

移除构造函数的冗余参数,同时优化命名提升可读性:

public class Pyt
{
    private double _sideA;
    private double _sideB;

    // 仅保留必要的直角边参数
    public Pyt(double sideA, double sideB)
    {
        _sideA = sideA;
        _sideB = sideB;
    }

    // 计算两条直角边的平方和
    public double GetSquareSum()
    {
        return _sideA * _sideA + _sideB * _sideB;
    }

    // 计算斜边长度
    public double GetHypotenuse()
    {
        return Math.Sqrt(GetSquareSum());
    }
}

步骤2:修改按钮点击事件逻辑

实例化Pyt类并调用其计算方法,替换原有的局部变量输出:

private void button1_Click(object sender, EventArgs e)
{
    double side1 = double.Parse(textBox1.Text);
    double side2 = double.Parse(textBox2.Text);

    // 实例化勾股定理计算器
    Pyt pytCalculator = new Pyt(side1, side2);
    // 获取计算后的斜边值
    double hypotenuse = pytCalculator.GetHypotenuse();

    textBox3.Text = hypotenuse.ToString();
}

关键修改说明

  • 构造函数仅接收计算所需的两条直角边,确保类初始化时能正确获取计算参数。
  • 按钮事件中新增类实例化与方法调用步骤,真正利用自定义类的逻辑完成计算,而非使用初始为0的局部变量。
  • 命名优化遵循C#惯例:字段用驼峰式(首字母小写),方法用帕斯卡式(首字母大写),提升代码可读性和维护性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:10:40