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

编写GetAverage方法读取3个数求平均值,遇ReadLine调用报错求助

问题排查与解决

错误原因

Console.ReadLine()方法没有支持传入字符串参数的重载版本,你在调用时传递的提示文本会直接触发编译错误。正确的操作逻辑是先输出提示信息,再调用无参的Console.ReadLine()读取用户输入。

修正后的代码

class Program
{
    static void Main(string[] args)
    {
        double average = GetAverage();
        Console.WriteLine("The average of the numbers is: " + average);
    }
    public static double GetAverage()
    {
        Console.WriteLine("Enter the first number: ");
        double num1 = double.Parse(Console.ReadLine());
        
        Console.WriteLine("Enter the second number: ");
        double num2 = double.Parse(Console.ReadLine());
        
        Console.WriteLine("Enter the third number: ");
        double num3 = double.Parse(Console.ReadLine());
        
        return (num1 + num2 + num3) / 3;
    }
}

额外优化建议

如果用户输入非数字内容,double.Parse()会抛出异常导致程序崩溃。可以改用double.TryParse()做输入校验,提升程序健壮性:

public static double GetAverage()
{
    double num1, num2, num3;
    
    // 校验第一个数字输入
    while (true)
    {
        Console.WriteLine("Enter the first number: ");
        if (double.TryParse(Console.ReadLine(), out num1))
            break;
        Console.WriteLine("Invalid input, please enter a valid number.");
    }
    
    // 校验第二个数字输入
    while (true)
    {
        Console.WriteLine("Enter the second number: ");
        if (double.TryParse(Console.ReadLine(), out num2))
            break;
        Console.WriteLine("Invalid input, please enter a valid number.");
    }
    
    // 校验第三个数字输入
    while (true)
    {
        Console.WriteLine("Enter the third number: ");
        if (double.TryParse(Console.ReadLine(), out num3))
            break;
        Console.WriteLine("Invalid input, please enter a valid number.");
    }
    
    return (num1 + num2 + num3) / 3;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 01:55:15