RSS   



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


 


 
主題: [其他] [求助]關於Reflection   字型大小:||| 
Litfal
銀驢友〔初級〕
等級: 12等級: 12等級: 12
寫奇怪的程式中

十週年紀念徽章(六級)  

 . 積分: 486
 . 文章: 322
 . 收花: 4068 支
 . 送花: 3976 支
 . 比例: 0.98
 . 在線: 965 小時
 . 瀏覽: 7522 頁
 . 註冊: 6317
 . 失蹤: 3299
#1 : 2011-8-13 09:38 PM     全部回覆 引言回覆

反射就是...

簡單的說,就是在程式碼執行階段才參考其他來源並使用的方法。


平常參考DLL都怎麼做?
很簡單,在設計階段參考,並Coding使用就好了不是?

那假設今天有一個情況:
你今天寫了一個外觀很炫的player,但是目前只支援wav。
但是你留了一個介面作為"插座",只要符合這個介面寫的解析格式用dll,你就可以動態引用並支援該介面。
今天一個很欣賞你程式的人為你完成了mp3與wma版的dll,然後呢?
你該不會要設計階段引用->重新編譯一次->再發布一次來支援吧?
既然"插座"都準備好了,要提供什麼電器電源,不應該重新搞一下插座吧?
這種狀況,AP端會使用反射讀取某些DLL(通常會定義丟到某資料夾、或是提供[載入]的功能),以達成主程式不改版,但利用插件方式支援更多功能的能力。


另外還有一個用法:
在程式寫程式,並動態編譯後反射引用。
可以處理一些script案例、或是用以製作大量反覆運算的專一版函式以加速。



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

   

快速回覆
表情符號

更多 Smilies

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

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


 



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