写点什么

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

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

关注

评论

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

鸿蒙 Swiper 组件解析:轮播交互与动画效果全指南

谢道韫

Go 语言单例模式全解析:从青铜到王者段位的实现方案

左诗右码

2025华为HMS for Car全球生态峰会:同心聚力共筑生态联盟

极客天地

《HarmonyOSNext全流程订阅开发指南:从配置到挽留的终极方案》

Turing_010

大数据-26 ZooKeeper 分布式协调框架 简介与配置 Leader Follower Observer

武子康

Java 大数据 hadoop zookeeper 分布式

HarmonyOS实战:打造极简HEventBus事件通知

IT小码哥

HarmonyOS HarmonyOS NEXT

HarmonyOSNext支付全栈攻略:IAP Kit无漏单秘籍+避坑指南

Turing_010

HarmonyOS实战:自定义表情键盘

IT小码哥

鸿蒙

LLM 学习资料

Joseph295

德比软件基于生成式 AI 的智能酒店数据匹配系统

亚马逊云科技 (Amazon Web Services)

IBM 研究:以利润为导向的首席营销官将AI视为增长驱动力,但运营障碍阻碍了他们的步伐

财见

HarmonyOS NEXT仓颉开发语言实战案例:小而美的旅行App

幽蓝计划

harmoyos

Fluent Reader - 现代化的桌面RSS阅读器

qife122

Electron RSS阅读器

HarmonyOS NEXT仓颉开发语言实战案例:电影App

幽蓝计划

harmoyos

DApp 开发的技术方案

北京木奇移动技术有限公司

dapp开发 区块链开发 软件外包公司

大数据-25 Sqoop 增量数据导入 CDC 变化数据捕获 差量同步数据

武子康

大数据 hadoop hdfs sqoop JDBC

警报炸锅了,FastJson 又立功了。。

Geek_e3e86e

Java 编程

最后一个产品终于通过审核了!

Immerse

数据要素如何赋能企业创新

郑州埃文科技

数据要素

生产物料管理混乱怎么办?一文教你搞清BOM 清单和 MRP 需求!

积木链小链

数字化转型 智能制造 生产管理

Airtable 太贵了?5 个自托管替代方案成本&功能对比

NocoBase

开源 低代码 零代码 Airtable 自托管

AI 数据分析训练营 - 毕业总结

Simon

HarmonyOS NEXT仓颉开发语言实战案例:健身App

幽蓝计划

HarmonyOS NEXT

《HarmonyOSNext未成年人守护盾:3分钟搞定全自动分龄保护开发指南》

Turing_010

被阿里P7大佬上了一课:高并发与性能调优的碾压级理解!

程序员高级码农

java 程序员‘

StarRocks 3.5 新特性解读:Snapshot 快照恢复、大导入性能全面升级、分区管理更智能

StarRocks

存算分离 iceberg 物化视图 Snapshot 快照 StarRocks 3.5

开普勒完成A轮融资,打造"硬件梦之队"加速人形机器人规模化进程

财见

Unity Catalog 三大升级:Data+AI 时代的统一治理再进化

StarRocks

AI LakeHouse StarRocks Apache Iceberg

《HarmonyOSNext自动续期订阅支付全攻略 | 从环境检测到防漏单指南》

Turing_010

HarmonyOS NEXT仓颉开发语言实战案例:外卖App

幽蓝计划

HarmonyOS

今夏增长卷上天?看百度商家智能体玩转服务预约!

新消费日报

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