首頁 > 後端開發 > C++ > 反射能否根據其名稱更改 C# 屬性的值?

反射能否根據其名稱更改 C# 屬性的值?

Linda Hamilton
發布: 2025-01-03 17:31:39
原創
221 人瀏覽過

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

使用反射設定屬性值

問題:

在C# 中使用反射來改變屬性值是否可行,假設🎜>

在C# 中使用反射來改變屬性值是否可行,假設屬性名稱是已知?

答案:

當然,反射可以啟用此功能。實作方法如下:
  1. 取得屬性:
  2. 利用Type.GetProperty方法取得目標屬性。您可能需要指定其他綁定標誌以確保可訪問性。
  3. 設定值:
  4. 對檢索到的屬性呼叫 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板