我如何要求用户输入C#

时间:2017-02-21 12:01:01

标签: c# input console.readline

我正在从Python切换到C#,我遇到了ReadLine()函数的问题。如果我想要求用户输入Python,我就这样做了:

x = int(input("Type any number:  ")) 

在C#中,这变为:

int x = Int32.Parse (Console.ReadLine()); 

但如果我输入此内容我会收到错误:

int x = Int32.Parse (Console.ReadLine("Type any number:  "));

如何要求用户在C#中键入内容?

5 个答案:

答案 0 :(得分:6)

你应该改变这个:

int x = Int32.Parse (Console.ReadLine("Type any number:  "));

到此:

Console.WriteLine("Type any number:  "); // or Console.Write("Type any number:  "); to enter number in the same line
int x = Int32.Parse(Console.ReadLine());

但如果您输入一些字母(或其他无法解析为int的符号),您将获得Exception。要检查输入的值是否正确:

(更好的选择):

Console.WriteLine("Type any number:  ");
int x;
if (int.TryParse(Console.ReadLine(), out x))
{
    //correct input
}
else
{
    //wrong input
}

答案 1 :(得分:0)

Console.WriteLine("Type any number");
string input = Console.ReadLine();
int x;
if (int.TryParse(input, out x))
{
    //do your stuff here
}
else
{
    Console.WriteLine("You didn't enter number");
}

答案 2 :(得分:0)

Console.WriteLine("Type any number: ");
string str = Console.ReadLine();
Type a = Type.Parse(str);

其中Type是您要将用户输入转换为的数据类型。 我建议在转向论坛之前阅读几本关于C#基础知识的书籍。

答案 3 :(得分:0)

为了更通用,我建议你创建一个额外的对象(因为你不能在C#中扩展静态对象),使其表现得像你指定的那样。

public static class ConsoleEx
{
    public static T ReadLine<T>(string message)
    {
        Console.WriteLine(message);
        string input = Console.ReadLine();
        return (T)Convert.ChangeType(input, typeof(T));
    }
}

当然你这段代码不是没有错误的,因为它不包含任何关于输出类型的约束但是它仍会被转换成某些类型而没有任何问题。

例如。使用此代码:

static void Main()
{
    int result = ConsoleEx.ReadLine<int>("Type any number: ");
    Console.WriteLine(result);
}

>>> Type any number: 
<<< 1337
>>> 1337 

Check this online

答案 4 :(得分:-1)

试试这个

Console.WriteLine("Type any number:  ");
int x = Int32.Parse (Console.ReadLine());