获取对象的基础类型,先看扩展方法,如下:
/// <summary>
/// 获取对象基础类型
/// </summary>
/// <param name="_">类型</param>
/// <returns></returns>
public static ValueTypes GetValueType(this Type _)
返回一个 ValueTypes 枚举类型 枚举类型值如下:
/// <summary>
/// 值类型枚举
/// </summary>
public enum ValueTypes
{
/// <summary>
/// 空
/// </summary>
[Description("空")]
Null = 0,
/// <summary>
/// 值
/// </summary>
[Description("值")]
Value = 1,
/// <summary>
/// 类
/// </summary>
[Description("类")]
Class = 2,
/// <summary>
/// 结构体
/// </summary>
[Description("结构体")]
Struct = 3,
/// <summary>
/// 枚举
/// </summary>
[Description("枚举")]
Enum = 4,
/// <summary>
/// 字符串
/// </summary>
[Description("字符串")]
String = 5,
/// <summary>
/// 数组
/// </summary>
[Description("数组")]
Array = 6,
/// <summary>
/// List
/// </summary>
[Description("List")]
List = 7,
/// <summary>
/// 字典
/// </summary>
[Description("字典")]
Dictionary = 8,
/// <summary>
/// ArrayList
/// </summary>
[Description("ArrayList")]
ArrayList = 9,
/// <summary>
/// 是否是集合类型
/// </summary>
[Description("是否是集合类型")]
IEnumerable = 10,
/// <summary>
/// 字典类型
/// </summary>
[Description("字典类型")]
IDictionary = 11,
/// <summary>
/// 匿名类型
/// </summary>
[Description("匿名类型")]
Anonymous = 12,
/// <summary>
/// DataTable
/// </summary>
[Description("DataTable")]
DataTable = 13,
/// <summary>
/// 其它
/// </summary>
[Description("其它")]
Other = 20
}
可以识别对象为以上类型,用法如下:
var a = "a".GetValueType();
var b = 10.GetValueType();
var c = new{a="a",b="b"}.GetValueType();