您的位置:首页 > 其它

反射给对象赋值遇到的问题——类型转换

2015-12-31 15:43 267 查看
给一个对象属性赋值可以通过PropertyInfo.SetValue()方式进行赋值,但要注意值的类型要与属性保持一致。

创建对象实例的两种方法:

1.

2.

以后有时间再把这两种的区别详细讲一下。

创建好实例时,现在可以给当前实例的某个属性赋值,首先获取要赋值的属性。

赋值可通过PropertyInfo.SetValue()方法,详见MSDN。

情况1,该属性类型是已知类型,例如:int

这里需要注意value值的类型必须和属性类型一致,否则会抛出TargetException异常。

情况2,该属性类型是已知类型,原值是其他类型。例如:目标类型为int,值为string

前两种情况都很简单,有时业务会比较复杂,对目标类型不确定,需要程序运行时判断。

情况3,该属性类型是未知非泛型类型,不确定目标类型,如何进行类型转换。

这样就可以解决大多数问题了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: