#c# #methods #return
Вопрос:
Я просто пытаюсь вернуть двойное значение в методе, но я продолжаю получать «ожидаемое имя метода» в строке возвращаемой переменной:
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 НАСТАИВАЕТ на том, что мне нужно указать имя метода в строке возврата вместо переменной, которую я пытаюсь вернуть.
Ответ №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));
Комментарии:
1. Хотя концептуально то, что он здесь делает, должно быть скорее свойством, а не методом (действием),
public double Perimeter => ((2 * height) (2 * width));
т. е.2. @ckuri да, это тоже довольно справедливо
3. Интересно, что заглавная буква имени метода не изменила его мнение, поэтому я в конечном итоге вернул строку математики напрямую. Спасибо за помощь!