[英]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到無論是在a
的DB
屬性。
我不確定當你在具有值類型的屬性上調用GetValue()
時會發生什么,我想你會得到對原始值的盒裝副本的引用,如Boxing和Unboxing(C#編程指南)中所述 :
裝箱值類型[到
object
中GetValue()
的情況下]分配在堆上並復制的對象實例的值到新的對象。
這意味着一個屬性的值DB
你的對象的a
投,以testType
(你傳遞一個參考對象a
在PropertyInfo.GetValue
),所以只有一個對象a
和你的變量引用它的DB
性能。
變量property
保存對屬性DB
存儲的相同值的引用。
GetValue(a,null)
返回類型是對象,因此使用as運算符可以簡單地類型轉換它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.