QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

在 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:421990
用户头像

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

关注

评论

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

【闲鱼API】深入解析与应用指南——闲鱼商品详情API接口♠

Geek_9dbf95

数据采集 闲鱼 电商API 免费测试

微服务架构必备技术栈:万变不离其宗的奥义!

不在线第一只蜗牛

架构 微服务 云原生

数智化浪潮下的零售品牌商品计划革新

第七在线

在得物的小程序生态实践

得物技术

小程序 Vue web前端 企业号2024年6月PK榜

AR培训指导--跨越时间和空间的思想碰撞

AR玩家

培训学习 Rokid #AR Vision pro 炬目AR

深入理解 Python 类中的各种方法

我再BUG界嘎嘎乱杀

Python 编程 后端 开发语言

百度网盘AI写真重磅升级!一张照片即可生成高清簪花毕业照

IT新闻资讯

百度网盘

一键获取企业“松弛感”

白洞计划

云计算

IPv6改造是什么意思?网站IPv6改造怎么做?

国科云

北京人工智能数据运营平台发布,并开源超大规模高质量数据集

智源研究院

和鲸101计划:以神经计算建模培训,助力北大学术人才培养

ModelWhale

数据 建模

和鲸101计划:以数据能力助力南开大学新文科建设

ModelWhale

数据 新文科

AI 人 吐 槽 大 会

白洞计划

AI

今日分享丨浅谈配置中心对配置的集中管理

inBuilder低代码平台

微服务 云原生 配置管理

和鲸101计划:经管大数据课程教学训练营线下培训圆满收官

ModelWhale

数据 经管

AI安全水深流急,黄铁军首谈AGI能力与风险分级,2024智源大会圆满落幕

智源研究院

基于可视化设计的低代码开发分析与应用探讨

不在线第一只蜗牛

低代码 可视化开发

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