运行时获取输入类型
本文关键字:类型 输入 获取 运行时 | 更新日期: 2023-09-27 17:58:36
我是c#的初学者。当编程正在运行时,我们如何在不进行异常解析的情况下获取变量类型。我们不知道会输入什么类型的用户。
我很想做这个
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;
}
Console.ReadLine
方法将基于string
的输入流作为字符返回。
无论是哪种类型的数据输入,您的variable
始终是string
。这就是为什么variable.GetType()
始终返回System.String
的原因。在这种情况下,使用switch语句是不合乎逻辑的。
如果要检查输入是否为有效的Int32
或Double
,可以使用Int32.TryParse
或Double.TryParse
方法来检查它们是否为有效int
或double
。
Console.WriteLine("Enter Something From Keybord");
var variable = Console.ReadLine();
int i;
double d;
if(Int32.TryParse(variable, out i))
{
// Your variable is a valid int and it's value assingned to i.
}
if(Double.TryParse(variable, out d))
{
// Your variable is a valid double and it's value assingned to d.
}
使用Int、Double等的TryParse方法
MSDN 上的Int32.TryParse
试试这个。
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;
}