C# 运行时获取输入类型
我是c#的初学者。 当程序运行时,我们如何在没有异常的情况下将变量类型解析为变量。我们不知道用户将输入什么类型 我真想这么做C# 运行时获取输入类型,c#,C#,我是c#的初学者。 当程序运行时,我们如何在没有异常的情况下将变量类型解析为变量。我们不知道用户将输入什么类型 我真想这么做 Console.WriteLine("Enter Something From Keybord"); var variable = Console.ReadLine(); switch (variable.GetType()) { case System.Int32:
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;
}
基于输入流以字符形式返回string
您的变量
始终将是一个字符串
,无论输入的数据类型如何。这就是为什么变量.GetType()
总是返回System.String
。在这种情况下,使用switch语句是不符合逻辑的
如果要检查输入是否有效Int32
或Double
,可以使用或方法检查它们是否有效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.
}
试试这个
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;
}
对Int、Double等使用TryParse方法
@大天使我写了一个例子
TryParse
方法不会引发任何异常。如果变量是有效的int
或double
,则返回true
或false
。