利用反射修改属性值
反射是一个强大的 .NET 框架功能,赋予检查和修改对象及其成员的能力动态地。在这种情况下,我们将探讨如何利用反射来设置 C# 类中特定属性的值。
考虑一个场景,其中您知道属性的名称,例如“first_name”并希望使用该字符串修改其值。反射为这个问题提供了一个解决方案。
要达到预期的结果,可以采取以下步骤:
提供的代码示例举例说明了此方法:
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,如下所示:
var property = typeof(Person).GetProperty("Name", BindingFlags.NonPublic | BindingFlags.Instance);
借助反射,动态设置属性值变得可行,为代码操作和运行时提供了灵活性行为。
以上是C# 中如何使用反射动态设置属性值?的详细内容。更多信息请关注PHP中文网其他相关文章!