问题:
在 C# 中使用反射来改变属性值是否可行,假设属性名称是已知?
答案:
当然,反射可以启用此功能。实现方法如下:
using System; class Person { public string Name { get; set; } } class Test { static void Main(string[] arg) { Person p = new Person(); var property = typeof(Person).GetProperty("Name"); property.SetValue(p, "Jon", null); Console.WriteLine(p.Name); // Jon } }
注意:如果目标属性是非公共的,则需要使用 BindingFlags.NonPublic |获取属性时的 BindingFlags.Instance。
以上是反射能否根据其名称更改 C# 属性的值?的详细内容。更多信息请关注PHP中文网其他相关文章!