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

使用C#类实现毕达哥拉斯定理时遇方法组转double错误求助

问题解决:方法调用缺少括号导致的类型转换错误

你的错误根源很明确:_Som是一个方法,不是字段或变量。在C#中,调用方法必须加上括号()来执行它并获取返回值,直接写方法名会被编译器识别为「方法组」,而Math.Sqrt()需要的是double类型参数,因此会抛出类型转换错误。

修正后的代码

public class Pyt
{
    private double _Rh1;
    private double _Rh2;

    public Pyt(double rh1, double rh2)
    {
        _Rh1 = rh1;
        _Rh2 = rh2;
    }

    public double _Som()
    {
        return _Rh1 * _Rh1 + _Rh2 * _Rh2;
    }

    public double _Som2()
    {
        // 给_Som加上括号,执行方法获取返回值
        return Math.Sqrt(_Som());
    }
}

额外优化建议(可选)

按照C#命名规范,方法名通常使用帕斯卡命名法(PascalCase),下划线开头一般用于私有字段,建议把方法名修改得更具语义化,提升代码可读性:

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

    public Pyt(double sideA, double sideB)
    {
        _sideA = sideA;
        _sideB = sideB;
    }

    public double CalculateSumOfSquares()
    {
        return _sideA * _sideA + _sideB * _sideB;
    }

    public double CalculateHypotenuse()
    {
        return Math.Sqrt(CalculateSumOfSquares());
    }
}

内容的提问来源于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 02:50:28