2016-09-17 3 views
-1

Я изменяю простую программу C#, которая показывает область прямоугольника, ширина и высота которого вы пишете в консоли (изначально значения ширины и высоты были указаны в программе). Тем не менее, пользовательская часть ввода, похоже, не работает. Я пробовал Convert.ToInt32(), и я даже изменил переменные на целые числа, даже если они должны быть плавающими, считая, что преобразование будет работать именно так, но безрезультатно. Ошибка I get is: "error CS0266: Невозможно неявно преобразовать тип 'double' в 'int'.". Чтение переменной float из пользовательского ввода внутри функции

Вопрос заключается в том, что мне делать, чтобы сделать эту работу? Я думаю, что я мог бы просто удалить функцию и просто написать код в основном, но я пытаюсь научиться использовать функции, и я был бы благодарен, если бы вы могли показать мне способ присвоить значение переменной ввод на клавиатуре без удаления функции.

'

class Rectangle 
{ 
    // member variables 
    double length; 
    double width; 
    public void Acceptdetails() 

     { 
     //read length and width from the keyboard 
     length = Convert.ToDouble(Console.ReadLine()); 
     width = Convert.ToDouble(Console.ReadLine()); 
    } 
    public double GetArea() 
    { 
     return length * width; 
    } 

    public void Display() 
    { //display the length width and area 
     Console.WriteLine("Length: {0}", length); 
     Console.WriteLine("Width: {0}", width); 
     Console.WriteLine("Area: {0}", GetArea()); 
    } 
} 

class ExecuteRectangle 
{ 
    static void Main(string[] args) 
    { 
     Rectangle r = new Rectangle(); 
     r.Acceptdetails(); 
     r.Display(); 
     Console.ReadLine(); 
    } 
} 

'

+0

_length = Convert.ToInt32 (Console.ReadLine()); _ – Steve

+0

Вы уже исправил проблему в вашем примере? Я не мог видеть проблему, поэтому я скопировал это в быстрый проект в Visual Studio и, конечно же, работает так, как ожидалось. Ваше сообщение об ошибке должно содержать номер строки. Какая конкретная строка кода является ошибкой? –

ответ

0

Console.ReadLine() является функцией вы забыли()

это должно работать

 length = Convert.ToInt32(Console.ReadLine()); 
     width = Convert.ToInt32(Console.ReadLine()); 
+0

Я отредактировал вопрос, так как понял, что это звучит так, как будто я не мог преобразовать их в целые числа. Что мне нужно, это преобразовать их в тип float, так как они должны иметь возможность получить десятичные числа. Также жаль насчет скобок, я думаю, чтобы заставить их работать, я забыл их добавить, и я не проверял код, когда я его загрузил (взлеты). –

+0

Используйте десятичную десятичную запятую. Parsse() –