C#将字符串转换为int' s

时间:2017-03-18 14:41:47

标签: c#

我是c#的新手,我正在尝试制作一个简单的计算器。 它工作正常,直到它回到开始采取新的数字。 在获取新数字时,它表示无法将用户输入转换为整数。

using System;

namespace simpleCalculator
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            start:
            Console.Clear();
            Console.WriteLine("Enter first number");
            int x = Convert.ToConsole.ReadLine();
            Console.WriteLine("Would you like to\n1. Add\n2. Multiply\n3. Devide");
            string o = Console.ReadLine();
            if (o == "1")
            {
                Console.WriteLine("Enter second number\n");
                int y = Convert.ToInt32(Console.ReadLine());
                add(temp, y);
                goto start;



                Console.Clear();
                goto start;
            }
        }
        public static void add(int num01, int num02)
            {
                Console.Clear();
                Console.WriteLine((num01 + num02) + "\nPress enter to contiue.");
                Console.Read();
            }
        }
    }

3 个答案:

答案 0 :(得分:2)

使用TryParse因此,如果解析失败,您将不会获得异常。

var enteredValue = Console.ReadLine();
var parsedValue;
if (!int.TryParse(enteredValue, out parsedValue))
{
    // parse failed do whatever you want
}

对两个条目执行此操作,如果两个条目都通过,请调用add方法。

答案 1 :(得分:0)

您正在寻找int.Parse()。小心验证您的输入。您应该创建一个转义条件。

编辑以显示替代解决方案
编辑以更明确地说明如何处理某些输入

class Program
{
    public static void Main(string[] args)
    {
        string input = String.Empty;
        int x = 0, y = 0;

        while (true)
        {
            try
            {
                Console.WriteLine("Enter first number");
                 x = int.Parse(Console.ReadLine());

                Console.WriteLine("Would you like to\n1. Add\n2. Multiply\n3. Divide");
                input = Console.ReadLine();

                Console.WriteLine("Please enter a second number");
                y = int.Parse(Console.ReadLine());
            }
            catch
            {
                Console.WriteLine("Invalid input");
                continue;
            }
            switch (input)
            {
                case "1":
                    Console.WriteLine($"{x} + {y} = " + add(x, y));
                    break;
                case "2":
                    //TODO implement multiply case
                    break;
                case "3":
                    //TODO implement divide case
                    break;
                default:
                    Console.WriteLine("Invalid input");
                        break;
            }
        }
    }
    public static int add(int x, int y) => x + y;
}

答案 2 :(得分:0)

试试这个: int numbers = Convert.ToInt32("1234");