使用反射存取私有類別成員
問題:
是否可以使用反射來存取類別的私有字段,例如下面程式碼中的_bar
字段?
<code class="language-csharp">class Foo { [SomeAttribute] private string _bar; public string BigBar { get { return this._bar; } } }</code>
解:
是的,反射允許存取私有欄位。 以下是如何使用 BindingFlags
檢索私有欄位:
<code class="language-csharp">FieldInfo[] fields = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);</code>
BindingFlags.NonPublic
包含非公用成員(如私人欄位),且 BindingFlags.Instance
確保僅傳回實例欄位。然後,fields
陣列將包含私有 _bar
欄位。
以上是反射可以存取私有類別欄位嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!