【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

C#和 F#默认接口方法更新

  • 2018-09-24
  • 本文字数:1066 字

    阅读完需:约 3 分钟

“默认接口方法( Default Interface Methods )”特性提案将允许 C#、F#及其他.NET 语言实现有限形式的多继承。受Java 的默认方法启发,库作者将可以向已发布的接口中添加新方法而不破坏向后兼容性,其中也包括默认实现。

对于这个人们热议的特性,争论双方都固执己见。在这一点上,什么 都没变。最新消息是,这可能只是一个.NET Core 特性。

在讨论“ F#中的默认接口方法”提案时,来自微软的 Phillip Carter 写道:

我得说一下,默认接口方法确实为我们提供了一个.NET 运行时支持的方式,用于支持#243(在某种程度上)。不过,这项修改仅限于.NET Core,因为修改桌面 CLR 支持底层运行时特性的可能性微乎其微。因此,就像 C#一样,F#也将会有一个只有在你使用了 CoreCLR 是才有效的特性。

[…]

默认接口方法需要修改运行时。这也意味着需要进行检查,看看特定的运行时是否支持这个特性: https://github.com/dotnet/csharplang/blob/master/proposals/default-interface-methods.md#clr-support-api

已推出的.NET Framework 版本现在还没有支持这个特性的,它们将来提供支持的可能性也微乎其微,因为那会有破坏现在广泛存在的已有应用的风险。.NET Core 最终将在其运行时中包含这个特性,但是,现在还没有完全确定,它是否也会包含在.NET Framework、mono 或 UWP 运行时的某个未来版本中。正如 @jnm2 提到的那样,除非每一种支持.NET Standard 的运行时都包含这个特性,否则你就无法在.NET Standard 中使用它们。它也不在即将到来的.NET Standard 2.1 的计划中。

我考虑的是,从长远规划的角度看,我们所能做的不仅仅是在面对这样一种结构时保持冷静。这个特性是从 C#复制的?恐怕不是。一个成熟的 traits/typeclasses 系统?那需要花时间进行恰当的设计。它如何与已有的东西如 SRTP 合理共存?对于现在的接口、将来的接口、函数即接口、常规的泛型、SRTP 及其他东西,该如何考虑?但至少,在我看来,实现某种东西的机制即将到来,因此,在一个比较高的层面上考虑下还是有好处的,那是什么东西,它会有哪种行为,它如何与这方面的现有特性合理共存。

C#提案话题中,Joseph Musser 做出了以下回应:

作为库作者,这意味着,如果其中一个库的目标不是.NET Framework 或者在.NET Framework 上运行的一个.NET Standard 版本,那么 DIM 在现如今这种情况下就无助于 API 的演化。添加一个接口方法仍然是一项破坏性修改。

对此,Thomas Levesque 补充说,“对于该特性而言,由于库是最重要的使用场景,那会使得整个特性几乎没用……”

查看英文原文: Update on C# and F#’s Default Interface Methods

2018-09-24 11:271279
用户头像

发布了 1008 篇内容, 共 374.8 次阅读, 收获喜欢 341 次。

关注

评论

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

AI浪潮下,大模型如何在音视频领域运用与实践?

不在线第一只蜗牛

人工智能 AI 音视频 大模型

行业唯一!百度上榜“2023年度中国数据管理十大名牌企业”

百度安全

Nodejs项目yarn和node启动的区别

JavaScript node.js typescript YARN prisma

诚邀报名 | 内核Hacker与Mogul邀您共论操作系统技术创新与发展

开放原子开源基金会

Java 开源 程序员 开发者 算法

抖音商品详情API接口在电商行业中的重要性及实时数据获取实现

Noah

MySQL运维5-Mycat配置

EquatorCoco

MySQL 标签 配置化

关于响应式布局,你需要了解的知识点

EquatorCoco

响应式 页面布局 布局

介绍一款低代码数据可视化平台

秃头小帅oi

低代码 数据可视化

义乌购商品详情数据接口|义乌购商品数据接口|义乌购API接口

tbapi

义乌购商品详情数据接口 义乌购数据接口 义乌API接口

低代码平台浅析:引迈JNPF

互联网工科生

低代码 JNPF 引迈

KaiwuDB 连续三年荣获开源中国“优秀开源技术团队”

KaiwuDB

KaiwuDB 优秀开源技术团队

宣布推出适用于 Amazon DynamoDB 的增量导出到 S3

亚马逊云科技 (Amazon Web Services)

S3 API 云存储服务 Amazon DynamoDB

解放生产力!苏哒智能加入飞桨技术伙伴计划,用大模型革新企业办公工具

飞桨PaddlePaddle

人工智能 深度学习 办公 伙伴赋能

网易游戏与华为达成鸿蒙合作

最新动态

小红书可观测 Metrics 架构演进,如何实现数十倍性能提升?

小红书技术REDtech

云原生 可观测性

从信息量角度看人类智能与机器智能

Baihai IDP

人工智能 程序员 AI LLM 白海科技

数据中台的学习与总结 主赛道:技术人的 2023 总结

Echo_Wish

大数据 数据中台 年度总结 2023 2023年

5种容器内指定特定域名解析结果的方式

华为云开发者联盟

容器 云原生 华为云 域名解析 华为云开发者联盟

点燃数字引擎,天翼云助力汽车行业云上加速跑!

天翼云开发者社区

人工智能 数字化转型 汽车

【嵌入式Qt开发入门】在Ubuntu下编写C++教程。

百度搜索:蓝易云

c++ Linux ubuntu 云服务器 qt

最佳 Mock 工具排行榜: 顶级5个必知选择

Liam

前端 前端开发 Mock Mock 服务 Mock.js

华为云CodeArts Deploy常见问答汇总

华为云PaaS服务小智

华为云

TiDB 优化器逻辑优化之 OR 表达式条件消除

TiDB 社区干货传送门

性能调优 TiDB 源码解读

VSCode+GDB+Qemu调试ARM64 linux内核教程。

百度搜索:蓝易云

Linux vscode gdb 云服务器 qemu

关键词搜索淘宝商品列表数据接口|淘宝商品列表接口|淘宝API接口申请指南

tbapi

淘宝电商 淘宝API接口 淘宝商品列表数据接口 关键词搜索淘宝商品接口、

亮相CCF中国软件大会,天翼云助力千行百业搭上“数字快车”

天翼云开发者社区

人工智能 CCF

欧睿 × 和鲸:联合打造 AI 中台赋能企业数字化转型,大幅提升模型产品研发效率

ModelWhale

人工智能 数据分析 数字化转型 企业 数智化

紫光展锐T820与飞桨完成I级兼容性测试 助推端侧AI融合创新

飞桨PaddlePaddle

人工智能 机器学习 程序员 硬件

闪闪发光的“她”· Ladies in Tech |相聚女性开发者论坛

开放原子开源基金会

Java 开源 程序员 开发者 算法

抖音关键词商品列表API:电商行业的成功之道及实时数据获取的魔力

Noah

前方高能!2023开放原子开发者大会亮点攻略,一触即发

开放原子开源基金会

Java 开源 程序员 开发者 算法

C#和F#默认接口方法更新_.NET_Jonathan Allen_InfoQ精选文章