本文摘自PHP中文网,作者黄舟,侵删。
摘自:csdn
给一个对象属性赋值可以通过PropertyInfo.SetValue()方式进行赋值,但要注意值的类型要与属性保持一致。
创建对象实例的两种方法:
1.
1 |
|
2.
1 2 |
|
创建好实例时,现在可以给当前实例的某个属性赋值,首先获取要赋值的属性。
1 |
|
赋值可通过PropertyInfo.SetValue()方法,详见MSDN。
情况1,该属性类型是已知类型,例如:int
1 2 |
|
这里需要注意value值的类型必须和属性类型一致,否则会抛出TargetException异常。
情况2,该属性类型是已知类型,原值是其他类型。例如:目标类型为int,值为string
1 2 |
|
前两种情况都很简单,有时业务会比较复杂,对目标类型不确定,需要程序运行时判断。
情况3,该属性类型是未知非泛型类型,不确定目标类型,如何进行类型转换。
1 2 |
|
这样就可以解决大多数问题了。
相关阅读 >>
详细分析.net?core?以及与?.net?framework的关系(图)
解决visual studio 2017创建.net standard类库编译出错的问题
更多相关阅读请进入《csharp》频道 >>

C#高级编程(第11版) C# 7 & .NET Core 2.0(.NET开发经典名著)
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。