Re: [閒聊] 程式大師請進

作者: lturtsamuel (港都都教授)   2021-11-11 19:14:03
※ 引述《ZooseWu (動物園)》之銘言:
: 我有兩個class A 與 B
: 他們有80%的功能與函示名稱相似
: 然後我只有runtime的時候才知道物件身上有哪一個class
: 我有一個好方法可以簡單的呼叫 (A|B).function嗎
: 對了class不是我寫的
: 所以我沒辦法透過寫interface然後讓AB繼承這種方法
如果是rust的話至少有幾種方法
1. 用宏
2. 宣告自己的 trait 然後實作在別人的物件上
沒錯 rust 允許你在別人的物件上實作介面 超爽的啦
3. 寫一個 delegate class 包裝起來 然後實作 Deref<Target=T>
用自動轉型讓它看起來好像是多出來的方法一樣
不過這招好像被很多rust仔視為物件導向遺毒 建議是不要這樣
如果不是寫rust
那就隨便啦==
作者: leo42054205 (風從西來)   2021-11-11 19:16:00
雪霸
作者: ZooseWu (N5)   2021-11-11 19:19:00
幹 哭了 C#好像不能寫介面塞到別人臉上
作者: yam276 ('_')   2021-11-11 19:20:00
我學rust可以領600萬嗎
作者: lturtsamuel (港都都教授)   2021-11-11 19:20:00
哭了
作者: lopp54321010 (嘻嘻010)   2021-11-11 19:20:00
C#最多就寫Extension吧
作者: Mesenne (心火)   2021-11-11 19:21:00
請問我學會能領600萬ㄇ
作者: lopp54321010 (嘻嘻010)   2021-11-11 19:21:00
你可以寫兩組Extension插在A跟B類別身上名稱取一樣的 裡面call各自對應的method這樣call的時候就不用太在意到底是A還是B但是很醜 感覺沒什麼意義 對ㄚ
作者: lturtsamuel (港都都教授)   2021-11-11 19:21:00
大師
作者: pandafatfat (熊貓胖胖)   2021-11-11 19:23:00
戀愛>\\\<
作者: ZooseWu (N5)   2021-11-11 19:25:00
他們現在已經名稱一樣了我只是想不管他們是A還是B都行無腦的使用

Links booklink

Contact Us: admin [ a t ] ucptt.com