AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

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

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

关注

评论

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

直播预告 | 对谈谷歌云 DORA 布道师:聊聊最关键的四个 DevOps 表现指标

思码逸研发效能

DevOps

在中国程序员工作是青春饭吗?

小小怪下士

Java 程序员 面试

促进关键软件高层次人才培养:平凯星辰与华东师范大学签订联合博士培养合作协议

PingCAP

教育

前端培训机构怎么选择

小谷哥

java技术培训机构哪里好

小谷哥

“唤醒”闲物、“童”心共享

最新动态

业务流程将因生成式AI变革,ChatGPT引领的AIGC正在改变组织运营

王吉伟频道

人工智能 业务流程优化 AIGC ChatGPT 生成式AI

​网易游戏实时 HTAP 计费风控平台建设

PingCAP

TiDB

Apifox 自动化测试新增流程控制条件,复杂测试场景不再是问题!

Apifox

测试 测试工具 程序员‘ 测试管理工具

前端培训机构哪家比较适合学习

小谷哥

实现订单到期未支付自动关闭不会写?这6种方案任你挑选

程序员拾山

Java 技术方案 关闭订单

DAPP智能合约开发链上技术

薇電13242772558

智能合约

MQTT X 1.9.1发布:资源消耗降低80%,稳定性大幅提升

EMQ映云科技

物联网 IoT mqtt 版本发布 企业号 2 月 PK 榜

StarRocks技术内幕 | 资源隔离原理解析

StarRocks

数据库 开源 资源隔离

一图读懂 | 2023年中国产业数字化十大趋势

易观分析

数字经济 产业数字化

ToB软件遇上ChatGPT,没有天翻地覆

ToB行业头条

GaussDB(DWS)迁移:一种执行高效的TereData的marco迁移方案

华为云开发者联盟

数据库 后端 华为云 企业号 2 月 PK 榜 华为云开发者联盟

提高IT运维效率,深度解读京东云AIOps落地实践(异常检测篇(二))

京东科技开发者

人工智能 运维 AIOPS 时间序列 企业号 2 月 PK 榜

flutter系列之:使用SliverList和SliverGird

程序那些事

flutter 架构 大前端 程序那些事

【漏洞真实影响分析】Apache Kafka Connect 模块JNDI注入(CVE-2023-25194)

墨菲安全

SCA 代码安全检测 软件供应安全

前端开发如何选择培训机构

小谷哥

led显示屏升级这些技术才能更节能

Dylan

广告 LED LED显示屏

新思科技点拨DevSecOps安全“左移”的9大要点

InfoQ_434670063458

DevSecOps 软件安全 安全左移

2023年中国数字化活动行业专题报告

易观分析

数字经济 产业数字化

低代码开发平台 让数据应用不再复杂

力软低代码开发平台

提速还能不掉点!深度解析 MegEngine 4 bits 量化开源实现

MegEngineBot

深度学习 开源 MegEngine CUDA int4

什么是极速文件传输,极速文件传输如何进行大文件传输

镭速

瓴羊Quick BI报表分析工具,专业数据分析人员的“神辅助”

对不起该用户已成仙‖

MASA Stack 1.0 发布会讲稿——生态篇

MASA技术团队

.net 开源 MASA MASA Stack

线下java培训机构哪个比较好

小谷哥

GPT发展史

鼎道智联

openai

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