反射给对象赋值遇到的问题——类型转换
2015-12-31 15:43
267 查看
给一个对象属性赋值可以通过PropertyInfo.SetValue()方式进行赋值,但要注意值的类型要与属性保持一致。
创建对象实例的两种方法:
1.
2.
以后有时间再把这两种的区别详细讲一下。
创建好实例时,现在可以给当前实例的某个属性赋值,首先获取要赋值的属性。
赋值可通过PropertyInfo.SetValue()方法,详见MSDN。
情况1,该属性类型是已知类型,例如:int
这里需要注意value值的类型必须和属性类型一致,否则会抛出TargetException异常。
情况2,该属性类型是已知类型,原值是其他类型。例如:目标类型为int,值为string
前两种情况都很简单,有时业务会比较复杂,对目标类型不确定,需要程序运行时判断。
情况3,该属性类型是未知非泛型类型,不确定目标类型,如何进行类型转换。
这样就可以解决大多数问题了。
创建对象实例的两种方法:
1.
创建好实例时,现在可以给当前实例的某个属性赋值,首先获取要赋值的属性。
情况1,该属性类型是已知类型,例如:int
情况2,该属性类型是已知类型,原值是其他类型。例如:目标类型为int,值为string
情况3,该属性类型是未知非泛型类型,不确定目标类型,如何进行类型转换。
相关文章推荐
- oc 基础知识总结三 nil、null、NULL、NSNull的区别
- Tomcat的Session管理机制
- Certificate、Provisioning Profile、App ID
- Centos 6.5上安装配置KVM
- 不同框架实现的WebService的服务端获取HttpServletRequest
- Bootstrap Table简单例子学习
- 独木舟上的旅行(南阳oj71)(贪心)
- condor 使用详解
- condor 使用详解
- How do you simple use git repository
- cstring::getlength()
- leetcode刷题日记—— Binary Tree Level Order Traversal II
- openJPA从数据库生成代码操作
- 前后端分离的思考与实践(一)
- uboot系列之-----顶层Makefile分析(一)
- Hdu 2105
- java8.抽象类的应用
- 《写给25岁的我们》
- 易错点
- 简单了解将WordPress中的工具栏移到底部的小技巧