如何在C#中找到值类型为Type
?如何确定值类型的值类型
比方说,我有:
string str;
int value;
double doubleValue;
是否有返回的这些值类型的类型的方法?
更清晰,我想是这样的:
string str = "Hello";
string typeOfValue = <call to method that returns the type of the variable `str`>
if (typeOfValue == "string") {
//do something
} else {
//raise exception
}
我想从用户那里得到输入,并抛出一个异常,如果输入的值不是string
或int
或double
根据我的条件。
我曾尝试:
public class Test
{
public static void Main(string[] args)
{
int num;
string value;
Console.WriteLine("Enter a value");
value = Console.ReadLine();
bool isNum = Int32.TryParse(value, out num);
if (isNum)
{
Console.WriteLine("Correct value entered.");
}
else
{
Console.WriteLine("Wrong value entered.");
}
Console.ReadKey();
}
}
,但如果我要检查的值的类型是什么string
或其他什么东西?
'Object.GetType' ?!但目前还不清楚,用户只能输入字符串。所以类型总是字符串。如果将它解析为数字类型,则在编译时已知该类型。 – 2014-10-16 13:07:36
只是一个侧面说明,'字符串不是一个值类型 – Habib 2014-10-16 13:08:14
我没有看到*为什么*你需要在这里。如果你有一个'Object',这会很有用,但是从控制台读取的字符串是一个字符串,除非你解析它,否则解析结果是一个已知的类型。 – crashmstr 2014-10-16 13:08:45