枚举.NET的基本类型

在使用反射的时候,有时候要根据不同的类型做不同的操作。其中要做的一件事是枚举.NET的基本类型。由于进行.NET开发,已经对.NET的基本类型较了解,可能会使用下面的代码进行枚举:

Type objectType = obj.GetType();
if(objectType == typeof(string))
{
    // DO sth
}
else if(objectType == typeof(int) || objectType == typeof(int?))
{
    // DO sth
}
else if(objectType == typeof(enum))
{
    // DO sth
}
// more else


这样做有一点不好,有时候要为漏掉某个基本而苦恼。
原来.NET FX中有相应的类型和方法可以做得更好:使用 Convert.GetTypeCode 获取一个值,而这个值是 TypeCode 枚举值中的一个。这样就简单了。

TypeCode code = Convert.GetTypeCode(obj);
switch(code)
{
    case TypeCode.String:
    // DO sth
    break;

    case TypeCode.Int:
    // DO sth
    break;
    // case ...
}

这样除了代码看起来优雅外,还可以避免列举不全的问题。

原文地址:https://www.cnblogs.com/qkhh/p/2441386.html