如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

在 C#和 Visual Basic 中使用 Mixin

  • 2011-07-03
  • 本文字数:524 字

    阅读完需:约 2 分钟

Mixin 是对互不相关的类都有用处的一组功能。在支持多重继承的语言中 mixin 以第二基类的形式出现,而在动态强类型语言中则会被直接合并到类型中。C#和 VB 不支持这两种方式,一般通过基类来实现,从而导致类型肿胀或大量的复制粘贴。组合也不是好办法,因为被混入的方法和属性需要委托给内部对象执行。

re-mix 项目提供了另一种选择。通过运行时代码生成,简单的类能和一个或多个 mixin 类合并。这看起来像是多重继承,但实际上则是结合了对象组合与接口匹配来实现。比如说,你想要一个 mixin 来为类添加深拷贝功能。你需要创建一个 ICloneable 接口,以及一个实现该接口的 mixin 类 CloneableMixin。CloneableMixin 自动会获得一个父对象的引用,通过这个引用就可以执行克隆操作。

你可以在运行时将 CloneableMixin 混入任何类中来创建新的类。新类会继承自之前的类,并且实现了 mixin 所实现的全部接口。所有这些接口中的方法都会被委托给一个 mixin 的实例来执行。

另一个 mixin 的用法是重载基类中的行为,在这种情况下,mixin 中的方法将会在生成的类中改写原来类中的方法。

从 Stefan Wenig 和 Fabian Schmied 在 Lang.NET 的演讲中,可以学到更多关于re-mix 和mixin 的东西。

查看英文原文: Mixins for C# and Visual Basic

2011-07-03 10:422243
用户头像

发布了 63 篇内容, 共 27.4 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

spring 的aop笔记

加里都好

阿里面试官:Android面试这些原理都给我讲明白了,最低都是20k起步!

android 程序员 移动开发

阿里面试官:说说多线程并发问题

android 程序员 移动开发

面试半年,上个月成功拿到字节跳动offer,全靠我啃烂了这份2020最新面试题!

android 程序员 移动开发

面试官还问Handler?那我要给你讲个故事

android 程序员 移动开发

CSS响应式布局之REM

Augus

CSS 11月日更

面试官:我面Android程序员,经常遇到背题的,一问原理就露馅了

android 程序员 移动开发

音视频入门(二)色彩空间RGB和YUV

android 程序员 移动开发

07 K8S 之命令行应用编排

穿过生命散发芬芳

k8s 11月日更

阿里面试难吗,应该如何应对?

android 程序员 移动开发

面挂了腾讯、阿里巴巴、美团Android客户端,我有一份避坑指南分享给你

android 程序员 移动开发

面试了15位来自985211高校的2020届研究生之后,思考良久,写下此文。 掘金技术征文

android 程序员 移动开发

面试官:为什么 Activity

android 程序员 移动开发

面试被虐?不要慌,看懂这份Android面试真经大厂不是问题!

android 程序员 移动开发

领域驱动设计简介

android 程序员 移动开发

分享一个免费的思维导图软件GitMind

IT蜗壳-Tango

11月日更

面试官又双叒叕“突袭”:如何优化一个网络请求

android 程序员 移动开发

面试官:View的事件分发我必问,不会给你一个pass

android 程序员 移动开发

面试官:“看你简历上写熟悉 Handler 机制,那聊聊 IdleHandler 吧

android 程序员 移动开发

面试时,问哪些问题能试出一个 Android 应用开发者真正的水平12?

android 程序员 移动开发

音视频高手课01-Clang交叉编译最新FFmpeg

android 程序员 移动开发

面试官教你做人:字节跳动在招2000人,招聘要求让人窒息…

android 程序员 移动开发

面试官:“会不会熟练使用Jetpack” 我

android 程序员 移动开发

面试官:说一说Android启动优化

android 程序员 移动开发

架构1期模块十毕业总结

五只羊

架构实战营

面试官:“会不会熟练使用Jetpack”--我

android 程序员 移动开发

面试时,问哪些问题能试出一个 Android 应用开发者真正的水平?

android 程序员 移动开发

音视频开发:为什么推荐使用Jetpack CameraX?

android 程序员 移动开发

面经分享:字节跳动Android开发大佬的百度,美团,快手等大厂Offer收割之旅

android 程序员 移动开发

面试官:今日头条启动很快,你觉得可能是做了哪些优化?

程序员 移动开发

面试题学习与复习二

android 程序员 移动开发

在C#和Visual Basic中使用Mixin_.NET_Jonathan Allen_InfoQ精选文章