下面来详细讲解一下“C#通过属性名字符串获取、设置对象属性值操作示例”的完整攻略。
1. 获取属性值
我们可以使用反射来获取对象的属性值。示例代码如下:
var obj = new MyClass();
var propName = "Prop1"; // 要获取的属性名
var propValue = obj.GetType().GetProperty(propName)?.GetValue(obj, null); // 获取属性值
Console.WriteLine($"属性{nameof(MyClass.Prop1)}的值为:{propValue}");
解释一下代码:
- 第一行创建了一个MyClass
对象obj
;
- 第二行创建了一个字符串propName
,表示要获取的属性名;
- 第三行通过反射获取了obj
对象的Prop1
属性值,并将其赋给propValue
变量;
- 最后一行输出了获取到的属性值。
2. 设置属性值
同样的,我们可以使用反射来设置对象的属性值。示例代码如下:
var obj = new MyClass();
var propName = "Prop1"; // 要设置的属性名
var propValue = 123; // 要设置的属性值
obj.GetType().GetProperty(propName)?.SetValue(obj, propValue); // 设置属性值
Console.WriteLine($"属性{nameof(MyClass.Prop1)}的值为:{obj.Prop1}");
解释一下代码:
- 第一行创建了一个MyClass
对象obj
;
- 第二行创建了一个字符串propName
,表示要设置的属性名;
- 第三行创建了一个要设置的属性值propValue
;
- 第四行通过反射设置了obj
对象的Prop1
属性值为propValue
;
- 最后一行输出了设置后的属性值。
以上就是两个示例代码,分别用于获取和设置对象属性值,通过使用反射技术,可以动态地获取和设置对象属性值,这对于一些需要动态调整属性值的场景非常有用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#通过属性名字符串获取、设置对象属性值操作示例 - Python技术站