RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [其他] [求助]關於Reflection   字型大小:||| 
agogoman
鐵驢友〔初級〕
等級: 4


 . 積分: 29
 . 文章: 32
 . 收花: 85 支
 . 送花: 358 支
 . 比例: 4.21
 . 在線: 773 小時
 . 瀏覽: 19732 頁
 . 註冊: 6785
 . 失蹤: 37
 . TW
#1 : 2011-9-10 04:06 AM     全部回覆 引言回覆

reflection, 其實就是以前講的RTTI,
用.net的話 建議使用前先服用 http://msdn.microsoft.com/en-us/magazine/cc163759.aspx, 以免為了方便, 損失了效能.



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
agogoman
鐵驢友〔初級〕
等級: 4


 . 積分: 29
 . 文章: 32
 . 收花: 85 支
 . 送花: 358 支
 . 比例: 4.21
 . 在線: 773 小時
 . 瀏覽: 19732 頁
 . 註冊: 6785
 . 失蹤: 37
 . TW
#2 : 2011-10-12 04:13 PM     全部回覆 引言回覆

追加一個Example, 假設我們有一個List<ClassA> 這樣的陣列.
假如 我們沒辦把知道 呼叫者 希望用哪了 ClassA的Property來排序. 我們可以透過下面的方式來達成:
list.Sort(delegate(ClassA obj1,ClassA obj2) {
    if (sortingorder)
        return ((IComparable)typeof(ClassA).GetProperty(sortingfield).GetValue(obj1, null))).CompareTo(
                                                ((IComparable)(typeof(ClassA).GetProperty(sortingfield).GetValue(obj2, null))));
                                        else
                                                return ((IComparable)(typeof(ClassA).GetProperty(sortingfield).GetValue(obj2, null))).CompareTo(
                                                ((IComparable)(typeof(ClassA).GetProperty(sortingfield).GetValue(obj1, null))));
                                });

來達成 排序的動作
簡單來說 就是在process運作中抓到物件(Type/Class)的資料(Instance) 然後來動態作運算

不過除了上述的performance要注意外, 當大型專案的時候 也要小心造成issue tracking/sustain上的困難



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-5-9 11:21 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.023614 second(s), 7 queries , Qzip disabled