在运行时获取输入类型

时间:2014-04-16 06:17:59

标签: c#

我是c#的初学者。 当编程正在运行时,如何在没有Exception解析变量的情况下获取变量类型。我们无法知道将输入什么类型的用户。

我正在努力做到这一点

    Console.WriteLine("Enter Something From Keybord");
        var variable = Console.ReadLine();

        switch (variable.GetType())
        {
            case System.Int32:
                       variable += 1;
                       Console.WriteLine(variable);
                break;
            case System.String:
                        variable +="*";
                        Console.WriteLine(variable);
                        break;
            case System.Double:
                        variable += 1;
                        Console.WriteLine(variable);
                        break;
            default:
                break;
        }

3 个答案:

答案 0 :(得分:2)

Console.ReadLine method根据您的输入流返回string字符。

您的variable始终为string ,无论输入哪种类型的数据。这就是为什么variable.GetType()始终返回System.String的原因。在这种情况下,使用 switch语句是不合逻辑的。

如果您想检查输入是有效的Int32还是Double,可以使用Int32.TryParseDouble.TryParse方法检查它们是否有效{{1} }或int

double

答案 1 :(得分:0)

对Int,Double等使用TryParse方法

Int32.TryParse on MSDN

答案 2 :(得分:-1)

试试这个。

Console.WriteLine("Enter Something From Keybord");
        var variable = Console.ReadLine();

        switch (variable.GetType())
        {
            case typeof(int):
                       variable += 1;
                       Console.WriteLine(variable);
                break;
            case typeof(string):
                        variable +="*";
                        Console.WriteLine(variable);
                        break;
            case typeof(double):
                        variable += 1;
                        Console.WriteLine(variable);
                        break;
            default:
                break;
        }