因为C#中没有提供 Switch on Type 的功能,因此要判断类型通常会用一长串的if else,当然这种写法的问题是不够高效,且不够美观。因此 C# 中对常见类型提供了一组枚举值,也就是 TypeCode(这个枚举类型在.NET for Windows App Store 中居然被取消了,大概是因为DBNull这个类型本身也被取消了,这个值没有对应的类型了,干脆连TypeCode就一起取消了)。可以使用 Type.GetTypeCode 方法来得到类型对应的枚举值,之后对得到的枚举值进行switch操作。但需要注意这里有一组特殊的类型,那就是枚举类型,它的返回值是该枚举类型对应的数字类型,而不是Object类型。

因此如果你想区分枚举类型和数字类型的话,记住不要直接用这个方法,至少要先用 IsEnum 来判断一下。否则你可能会错把枚举了类型当成数字类型进行处理。

最新文章

  1. Python: Windows 7 64位 安装、使用 pymongo 3.2
  2. 【转】 CSS3实现10种Loading效果
  3. shell 脚本样例
  4. 我也要学C语言-第十九章:命令行参数
  5. CentOS6.5菜鸟之旅:U盘安装CentOS64位
  6. android基础知识13:AndroidManifest.xml文件解析
  7. guake默认快捷键
  8. CVPR读书笔记[5]:Gabor特征提取之Gabor核的实现
  9. c++:类中的static成员
  10. java中解决request中文乱码问题
  11. canvas 基础知识
  12. zookeeper的安装与部署-集群
  13. 移动浏览器H5页面通过scheme打开本地应用
  14. TabTopUnderLineLayout【自定义顶部选项卡(带下划线)】
  15. [SQL]LeetCode180. 连续出现的数字 | Consecutive Numbers
  16. [Swift]LeetCode829. 连续整数求和 | Consecutive Numbers Sum
  17. LeetCode(116):填充同一层的兄弟节点
  18. 20155313 2016-2017-2 《Java程序设计》第五周学习总结
  19. 巧用foxmail同步qq邮箱的通讯录
  20. java高级---->Thread之ExecutorService的使用

热门文章

  1. 将对象序列化,反序列化到XML
  2. android中常用转义字符
  3. 【JS】IE兼容placeholder
  4. Nginx 开启gzip 压缩
  5. javascript下ie7,ie8的Date Bug的解决
  6. html的基础标签
  7. windows server2008 kettle部署
  8. flume 不报错但是不能正常使用
  9. Bash条件判断
  10. IOS 关键字self,super,copy, retain, assign , readonly , readwrite, nonatomic、 @synthesize、@property、@dynamic