我是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;
}
答案 0 :(得分:2)
Console.ReadLine
method根据您的输入流返回string
字符。
您的variable
始终为string
,无论输入哪种类型的数据。这就是为什么variable.GetType()
始终返回System.String
的原因。在这种情况下,使用 switch语句是不合逻辑的。
如果您想检查输入是有效的Int32
还是Double
,可以使用Int32.TryParse
或Double.TryParse
方法检查它们是否有效{{1} }或int
。
double
答案 1 :(得分:0)
对Int,Double等使用TryParse方法
答案 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;
}