如何在C#中获取Var的实际数据类型

时间:2017-04-06 10:46:56

标签: c#

对于下面的代码,“GetType()”对于Var结果&是相同的(String)。 RESULT1。

$_POST['id']

如何获取上述变量的实际数据类型?

3 个答案:

答案 0 :(得分:0)

通过“实际数据类型”,您可能意味着“可以将数据处理(转换)为double,int”等。如果是您的情况,请尝试使用TryParse,可能 C#7.0 < / strong>(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 
    } 

答案 1 :(得分:0)

使用 var 声明的变量是隐式类型变量,但是(与使用 dynamic 不同)强类型变量。因此,您使用的变量将具有您为其分配的值的类型,并且无法分配其他类型的值。

string a = "foobar";
var b = "foobar";
int c = 10;
var d = 10;

a b 都是字符串类型。因为b获得了一个字符串。类型为int的 c d 也是如此。

这将生成编译器错误

var a = "foobar";
var i = 10;
a = i;

因为你不能将int赋给string类型的变量。

有关 var 的详细信息,请查看var (C# reference)

答案 2 :(得分:0)

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";
}