对于下面的代码,"GetType(("对于Var result&result1是相同的(字符串(。
var result = "abc";
var result1 = "10.17";
string a = result.GetType().Name;
string b = result1.GetType().Name;
如何获取上述变量的实际数据类型?
通过"实际数据类型",您可能意味着"是否可以将数据视为(转换(为double,int"等。如果是您的情况,请尝试使用 TryParse
、可能的 C# 7.0(out var
构造(实现:
var result1 = "10.17";
if (int.TryParse(result, out var intValue)) {
// result1 can be treated as int - intValue
}
else if (double.TryParse(result,
NumberStyles.Any,
CultureInfo.InvariantCulture,
out var doubleValue)) {
// result1 can be treated as double - doubleValue
}
else {
// result1 is a string which can't be converted to int, double
}
var 声明的变量是隐式类型变量,但(与使用动态不同(是强类型变量。因此,您使用的变量将具有您分配给它的值的类型,并且无法分配其他类型的值。
string a = "foobar";
var b = "foobar";
int c = 10;
var d = 10;
A 和 B 的类型均为字符串。因为 b 分配了一个字符串。c和d都是int类型。
这将生成编译器错误
var a = "foobar";
var i = 10;
a = i;
因为不能将 int 赋给字符串类型的变量。
有关 var 的详细信息,请查看 var(C# 参考(。
string a ="12.22";
int result;
double result1;
string ans = string.Empty;
if(int.TryParse(a,out result))
{
ans = "Integer";
}
else if(double.TryParse(a,out result1))
{
ans = "double";
}
else
{
ans = "string";
}