首页 > 后端开发 > C++ > 反射能否根据其名称更改 C# 属性的值?

反射能否根据其名称更改 C# 属性的值?

Linda Hamilton
发布: 2025-01-03 17:31:39
原创
236 人浏览过

Can Reflection Change a C# Property's Value Given its Name?

使用反射设置属性值

问题:

在 C# 中使用反射来改变属性值是否可行,假设属性名称是已知?

答案:

当然,反射可以启用此功能。实现方法如下:

  1. 获取属性:利用Type.GetProperty方法获取目标属性。您可能需要指定其他绑定标志以确保可访问性。
  2. 设置值: 对检索到的属性调用 SetValue 方法。下面是一个代码示例来说明:
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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板