台灣最大程式設計社群網站
線上人數
1565
 
會員總數:240909
討論主題:186668
歡迎您免費加入會員
討論區列表 >> VB.NET >> MyBase如何插入程式碼?
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
MyBase如何插入程式碼?
價值 : 50 QP  點閱數:194 回應數:13

樓主

city
初學者
10 20
400 90
發送站內信

請問各位前輩們:

Class2繼承了Class1

Class2想要插入自己的程式碼
如果使用了MyBase 會把Class1裡面的AA整個複製過來
如果想在B與D中間插入C 該如何做呢?
謝謝~~

如下:


搜尋相關Tags的文章: [ MyBase ] , [ 插入 ] , [ 程式碼 ] ,
本篇文章發表於2017-09-28 17:23
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

city
檢舉此回應
補充說明:

Class1的Sub裡面有
A
B
D

Class2的Sub裡面想要有
A
B
C
D


如下:

本篇文章回覆於2017-09-28 17:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

練武功
檢舉此回應
class2的AA內,可以寫
MyBase.AA()
MessageBox.Show("C")

只是A、B、C、D的順序無法調整
本篇文章回覆於2017-09-28 22:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

誰是誰
檢舉此回應
會問到這樣的問題,差不多就是走進 "濫用繼承" 這個胡同裡了。
本篇文章回覆於2017-09-29 13:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

city
檢舉此回應
To:練武功

大大的方法的確能夠從Class1的Sub撈出全部的內容
不過還是無法插入Class2的程式碼

看來MyBase沒有這樣的功能..
本篇文章回覆於2017-09-29 21:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

city
檢舉此回應
To:誰是誰

的確是剛開始接觸繼承
以後會注意 "濫用繼承"這個問題
感謝大大的提醒 ^^
本篇文章回覆於2017-09-29 21:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

誰是誰
檢舉此回應
實際上是做得到,但是,第一,這個技巧難度很高,第二,除非你想把程式碼寫到沒人想看懂或是製作甚麼特別的工具程式,否則一般的專案不會用這種方式。
本篇文章回覆於2017-09-29 23:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

Always
檢舉此回應
試試換個方向思考,覆寫另一個方法

呼叫

不過,就如誰是誰說的:可讀性較不好
本篇文章回覆於2017-10-01 14:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

誰是誰
檢舉此回應
To 7F: 我說的並不是這種方法,真正要做到連那個 呼叫 CC() 都不存在, 卻可以在執行時期插入 CC() 代碼在那個位置,要靠 IL 注入才辦的到。
本篇文章回覆於2017-10-01 14:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

city
檢舉此回應
To:Always

大大提供的方法適合Class1已知未來會在B與D之間插入程式碼 而預先埋入一個Sub
如果Class1已經寫好了 而且不知道後來會被插入程式碼 應該就無法使用此方法了

不過大大的方法還蠻不錯的
如果在編寫程式碼時 有考慮到未來可能會加入程式碼 可以使用大大提供的方法 ^^


本篇文章回覆於2017-10-02 10:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

city
檢舉此回應
To:誰是誰

Google了一下:IL注入
好像大部分是簡體網站 而且MSDN也是禁止討論這方面的技術??
(感覺好像這方法是用來做壞事似的...XD)

其實我原本只是想說要減少程式碼 避免寫2段相同的程式碼
看能不能用MyBase來減少程式碼
並加入Class2自己的程式碼

可是我發現這樣好像不太可能
因為Class2根本不知道從Class1的哪裡開始挖資料 還有要挖到哪裡
(例如:從行號10 挖到行號30)

大大能夠辦的到 也太神奇了 O.O
本篇文章回覆於2017-10-02 10:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

誰是誰
檢舉此回應
要學 IL 注入是一條很長很長的路,關於這個技巧要懂的東西太多,以你現在的狀況,只要忘記有這回事就好了。
本篇文章回覆於2017-10-03 00:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

city
檢舉此回應
To:誰是誰

一般市面上的VB.NET好像還沒看過IL注入的內容
想必IL注入應該是很高階的技巧

以我目前的等級 應該先把VB.NET基礎的東西先學好 ^^
本篇文章回覆於2017-10-03 11:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

city
檢舉此回應
To:誰是誰

[一般市面上VB.NET的教學書]

哈哈...漏打了幾個字
本篇文章回覆於2017-10-03 11:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.