【问题标题】:C# - Method name expected error when returning variable?C# - 返回变量时方法名称预期错误?
【发布时间】:2021-08-29 06:37:06
【问题描述】:

我只是想在一个方法中返回一个双精度值,但我在返回变量行上不断收到“预期的方法名称”:

public class Rectangle
{
    private double height;
    private double width;

    public Rectangle(double h, double w)
    {
        height = h;
        width = w;
    }

    public double perimeter()
    {
        double perimeter = ((2 * height) + (2 * width));
        return perimeter();
    }

看来这应该很简单,我不知道出了什么问题!我尝试将变量名称更改为其他名称,但 Visual Studio INSISTS 我需要将方法名称放在返回行,而不是我要返回的变量。

【问题讨论】:

    标签: c# methods return


    【解决方案1】:

    最好不要将变量命名为与方法相同的名称。

    正确的声明是:

    public double Perimeter()
    {
        double perimeter = ((2 * height) + (2 * width));
        return perimeter;
    }
    

    public double Perimeter()
    {
        return ((2 * height) + (2 * width));
    }
    

    或单线

    public double Perimeter() => ((2 * height) + (2 * width));
    

    或属性(来自@ckuri 评论)

    public double Perimeter => ((2 * height) + (2 * width));
    

    【讨论】:

    • 虽然从概念上讲他在这里所做的应该是一个属性而不是一个方法(动作),即public double Perimeter => ((2 * height) + (2 * width));
    • @ckuri 是的,这也很有效
    • 有趣的是,方法名的大写并没有改变主意,所以我最终直接返回了数学行。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 2023-03-31
    相关资源
    最近更新 更多