获取对象的基础类型,先看扩展方法,如下:

    1. /// <summary>
    2. /// 获取对象基础类型
    3. /// </summary>
    4. /// <param name="_">类型</param>
    5. /// <returns></returns>
    6. public static ValueTypes GetValueType(this Type _)

    返回一个 ValueTypes 枚举类型 枚举类型值如下:

    1. /// <summary>
    2. /// 值类型枚举
    3. /// </summary>
    4. public enum ValueTypes
    5. {
    6. /// <summary>
    7. /// 空
    8. /// </summary>
    9. [Description("空")]
    10. Null = 0,
    11. /// <summary>
    12. /// 值
    13. /// </summary>
    14. [Description("值")]
    15. Value = 1,
    16. /// <summary>
    17. /// 类
    18. /// </summary>
    19. [Description("类")]
    20. Class = 2,
    21. /// <summary>
    22. /// 结构体
    23. /// </summary>
    24. [Description("结构体")]
    25. Struct = 3,
    26. /// <summary>
    27. /// 枚举
    28. /// </summary>
    29. [Description("枚举")]
    30. Enum = 4,
    31. /// <summary>
    32. /// 字符串
    33. /// </summary>
    34. [Description("字符串")]
    35. String = 5,
    36. /// <summary>
    37. /// 数组
    38. /// </summary>
    39. [Description("数组")]
    40. Array = 6,
    41. /// <summary>
    42. /// List
    43. /// </summary>
    44. [Description("List")]
    45. List = 7,
    46. /// <summary>
    47. /// 字典
    48. /// </summary>
    49. [Description("字典")]
    50. Dictionary = 8,
    51. /// <summary>
    52. /// ArrayList
    53. /// </summary>
    54. [Description("ArrayList")]
    55. ArrayList = 9,
    56. /// <summary>
    57. /// 是否是集合类型
    58. /// </summary>
    59. [Description("是否是集合类型")]
    60. IEnumerable = 10,
    61. /// <summary>
    62. /// 字典类型
    63. /// </summary>
    64. [Description("字典类型")]
    65. IDictionary = 11,
    66. /// <summary>
    67. /// 匿名类型
    68. /// </summary>
    69. [Description("匿名类型")]
    70. Anonymous = 12,
    71. /// <summary>
    72. /// DataTable
    73. /// </summary>
    74. [Description("DataTable")]
    75. DataTable = 13,
    76. /// <summary>
    77. /// 其它
    78. /// </summary>
    79. [Description("其它")]
    80. Other = 20
    81. }

    可以识别对象为以上类型,用法如下:

    1. var a = "a".GetValueType();
    2. var b = 10.GetValueType();
    3. var c = new{a="a",b="b"}.GetValueType();