如何在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
还是其他什么呢?
答案 0 :(得分:2)
您可以在.Net中的任何元素上使用GetType
,因为它存在于对象级别:
var myStringType = "string".GetType();
myStringType == typeof(string) // true
GetType返回一个Type
对象,您可以使用Name
上的Type
属性获取可读的人性化友好名称。
答案 1 :(得分:0)
GetType
将返回正确的结果:
string typeOfValue = value.GetType().ToString();
但在这种情况下,您不需要将类型转换为字符串进行比较:
if (typeof(String) == value.GetType()) ...