【发布时间】:2014-12-11 20:50:15
【问题描述】:
如何在 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?!但不清楚,用户只能输入字符串。所以类型总是字符串。如果将其解析为数字类型,则您在编译时就已经知道该类型。 -
补充说明,
string不是值类型 -
我没有看到为什么你需要这个。如果你有一个
Object,这可能很有用,但是从控制台读取的字符串是一个字符串,除非你解析它,否则解析结果是一个已知类型。
标签: c#