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

  • 本文关键字:数据类型 Var 获取 c#
  • 更新时间 :
  • 英文 :


对于下面的代码,"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;

AB 的类型均为字符串。因为 b 分配了一个字符串。cd都是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";
}

最新更新