比较类型的语法?

时间:2015-12-01 11:02:51

标签: c#

我需要检查datareader列的数据类型:

Type type = dataTable.Columns[i].DataType;
if (type.Equals(System.Decimal))
{
    //...
}

但是,行if (type.Equals(System.Decimal))不正确。什么是正确的语法?

5 个答案:

答案 0 :(得分:6)

你几乎是对的。只需将其更改为:

if (type.Equals(typeof(System.Decimal)))

虽然更好的表达方式是:

if (type == typeof(System.Decimal))

如果您在文件顶部添加using System;,则可以将其设为:

if (type == typeof(Decimal))

答案 1 :(得分:2)

您必须添加typeof

  if (type == typeof(Decimal)) {...}

请注意,Equals不是必需的,==可读

答案 2 :(得分:1)

无需type变量;

if(dataTable.Columns[i].GetType().Equals(typeof(decimal)))
{
    //
}

答案 3 :(得分:0)

你可以简单地做

if (dataTable.Columns[i] is System.Decimal)
{
    //...
}

它是一个简化型比较器

答案 4 :(得分:0)

您可以使用typeof运算符来检查DataColumn类型的类型。

if(dataTable.Columns[i].DataType== typeof(System.Decimal))
{
  //Your code
}