簡體   English   中英

使用反射獲取屬性引用

[英]Getting a property reference using reflection

var a = new obj();
var property = a.GetType().GetProperty("DB").GetValue(a,null) as testObject;

這是否意味着變量property持有對對象a中相同對象的引用,或者是否創建了具有相同值的新testObject?

如果這意味着創建一個新對象,那么如何使用反射獲得對該屬性/支持字段的引用?

property現在持有referece到無論是在aDB屬性。

我不確定當你在具有值類型的屬性上調用GetValue()時會發生什么,我想你會得到對原始值的盒裝副本的引用,如Boxing和Unboxing(C#編程指南)中所述

裝箱值類型[到objectGetValue()的情況下]分配在堆上並復制的對象實例的值到新的對象。

這意味着一個屬性的值DB你的對象的a投,以testType (你傳遞一個參考對象aPropertyInfo.GetValue ),所以只有一個對象a和你的變量引用它的DB性能。

變量property保存對屬性DB存儲的相同值的引用。

GetValue(a,null)返回類型是對象,因此使用as運算符可以簡單地類型轉換它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM