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