Предупредите пользователя, что другие типы данных (например, строка) были вставлены без сбоя
Я хочу, чтобы пользователь мог вводить только значения int из консоли, а именно: литр, длину и высоту. Предупредите пользователя о том, что были вставлены другие типы данных(например, строка), и попросите его повторить попытку. Проблема в том, что код выходит из строя, как только в любое из заданных значений вставляется значение, отличное от int. Есть какие-нибудь мысли о том, как это сделать?
Что я уже пробовал:
InterfaceClass для расчета. InterfaceClass имеет два метода calculateArea и totalCost
public interface ICalculation {int calculateArea();int totalCost() }
Наследование класса интерфейса
Переменные-литр, длина, высота.
public class Calculation : ICalculation { public int litre; public int length; public int height; public Calculation() {litre= 0;length = 0;height = 0; } public Calculation(int litre2, int lenght2, int height2) { this.litre = litre2; this.length = lenght2; this.height = height2; } public int calculateArea() { return length * height; } public int totalCost() { return calculateArea()* litre; } }
Тестирование программы, чтобы увидеть результат. Создайте новый расчет объекта, а затем попросите пользователя заполнить литр, длину и высоту. Рассчитайте площадь и общую стоимость после получения значений.
class Tester { static void Main(string[] args) { Calculation c = new Calculation(); try{ Console.WriteLine("How much litre?"); c.litre = int.Parse(Console.ReadLine()); Console.WriteLine("What is the lenght"); c.length = int.Parse(Console.ReadLine()); Console.WriteLine("What is the height"); c.height = int.Parse(Console.ReadLine()); Console.WriteLine("The Total area " + c.calculateArea()); Console.WriteLine("The Total cost for the project is " + c.totalCost()); Console.ReadKey(); } catch(FormatException ){ Console.WriteLine("{0}is not an integer, try again!"); // Console.ReadLine(); } } } }
[no name]
Да. Не используйте int.Разобрать использовать int.Метод tryparse.