利用反射修改屬性值
反射是一個強大的.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中文網其他相關文章!