11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

C#开发团队在《Future Focus》系列文章中介绍 C#的下一步发展规划

  • 2008-02-02
  • 本文字数:1686 字

    阅读完需:约 6 分钟

C#开发团队中的 Charlie Calvert 和 Mads Torgersen 宣布他们将开始一个新的名为《Future Focus》的文章系列,其中将每月对 C#最新的开发状况以及发展规划进行介绍。

《Future Focus》是什么?

据 Charlie Calvert 介绍,《Future Focus》系列的目的在于:

需要说明的是,读者必须对这个系列的文章内容有着正确的认识。文章中给出的信息仅仅是为了帮助 C#开发者了解更多,而并不是任何形式的承诺。我们不会完完 整整地将所有的特性都一一列出,而只能尽力用一种通俗易懂的语言表达出来。Visual Studio 的开发进度、不可预料的技术问题、知识产权事宜、来自竞争者的压力等等都可能影响到我们的进度,乃至我们能够在这里写出的内容。不过不管怎 样,我们都会在这个文章系列中尽力给出 C#语言最新的发展方向。

可以看到,《Future Focus》系列文章并不会详细地给出 C#未来版本的设计规范,而是会以一种更加容易理解的方式给出总览形式的介绍。

《Future Focus》第一篇

《Future Focus》的第一篇文章中介绍了有关动态查找(Dynamic Lookup)的功能。在下个版本的 Visual Studio 中,所有的.NET 语言都将能够在运行时解析名称,而不是像现在这样只能在编译时进行。对于这个功能,Charlie 是这样介绍的:

动态查找功能的实现最开始是从 CLR 开始的,不过很快该功能就变成了动态语言运行时(Dynamic Language Runtime,DLR)的一部分。有了 DLR 的支持,我们即可方便地创建一系列的动态工具。例如,DLR 为 IronRuby IronPython 二者都提供了基础支持。同样,C#开发团队也会借助于 DLR 所提供的基础设施来实现动态查找功能。

实际上,VB.NET 中已经对动态查找提供了支持,不过它的动态查找通常被叫做延迟绑定(late binding)。新版本的.NET 将会把这个功能引入到 C#中来,同时也会为所有的.NET 语言(包括 VB)提供一个统一的运行时名称解析基础。

这篇文章中还介绍了动态查找的一些常见的应用场景:

  • Office 编程:在下个版本的 Visual Studio 中,Office 编程将会变得更加简单。开发人员再也无须引入众多的类库,或是指定调用方法时的可选参数了。对 Office 编程的支持也将成为对 COM 互操作以及 Office PIA 增强的一部分。
  • 对动态语言的支持:类似 IronRuby IronPython 的动态语言正一天天地变得更加流行。目前,这些语言中可以直接调用 C#代码,不过从 C#中调用它们却并不容易。在下个版本的 Visual Studio 中,C#开发者能够非常容易地使用到 IronPython 或 IronRuby 中定义的类型。这样,开发者就能够更容易地使用现有的动态语言代码,同时也为编写新功能提供了更多的选择。
  • 调用反射:目前,C#开发者能够借助反射在运行时初始化类型并任意调用其方法。有了动态查找的支持,此类调用将会被大大简化。

动态语言运行时(DLR)对于现在正日益流行的动态语言来说非常重要,也为动态语言和非动态语言之间的交互搭起了一座桥梁。诸如 Silverlight 2.0 之类的产品将在发布时广泛应用到这些动态语言的特性。

Charlie 还给出了一段使用动态查找的示例代码:

使用动态查找的语法还没有最终确定。下面的代码仅仅是开发团队的一段实验性质的尝试。

我们目前正在考虑添加一个名为dynamic的关键字来将动态代码块分隔开:

static void Main(string[] args)<br></br>{<br></br> dynamic<br></br> {<br></br> object myDynamicObject = GetDynamicObject();<br></br> myDynamicObject.SomeMethod(); // call a method <br></br> myDynamicObject.someString = "value"; // Set a field<br></br> myDynamicObject[0] = 25; // Access an indexer<br></br> }<br></br>}dynamic块中的所有代码都能够支持潜在需要的动态查找功能——哪怕代码中尝试访问的成员并不能在编译时确定,编译器也不会抛出异常。在运行时,DLR 将会在myDynamciObject所引用的对象中查找相应的方法或属性。若能够找到的话,则进行调用,否则将抛出异常。而在dynamic块之外的代码仍将只支持静态访问,就和我们现在的写法一样。

若你对这些内容感兴趣,可以继续关注 Charlie 的博客中的这个《Future Focus》系列文章。

查看英文原文: C# Team talks about the future with Future Focus

2008-02-02 09:11809
用户头像

发布了 37 篇内容, 共 72826 次阅读, 收获喜欢 3 次。

关注

评论

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

4月28日,一场为IT工程师们准备的盛宴

观测云

云原生 可观测性 IT 直播 产品发布会

模块八

blazar

「架构实战营」

亚马逊云科技 2022 年 3 月新服务新功能强势来袭

亚马逊云科技 (Amazon Web Services)

服务 亚马逊

面试突击40:线程休眠的方法有几种?

王磊

Java java面试

EasyRecovery2022全功能数据恢复介绍

茶色酒

EasyRecovery15

5 月亚马逊云科技培训与认证课程,精彩不容错过!

亚马逊云科技 (Amazon Web Services)

架构师 培训 认证

OpenHarmony 3.1 Beta样例:使用分布式菜单创建点餐神器

OpenHarmony开发者社区

OpenHarmony OpenHarmony应用开发 点餐

设计消息队列存储消息数据的MySQL表格

张逃逃

Linux驱动开发-内核共享工作队列

DS小龙哥

4月月更

从玄学走向科学:在字节跳动广告投放这么干

字节跳动数据平台

大数据 字节跳动 广告系统 ab测试

web前端培训React基础知识点的梳理

@零度

前端开发 React

设计消息队列存储消息数据的MySQL 表格

Geek_8d5fe5

「架构实战营」

一个系统工程师的14条建议

一席

高可用 稳定性 SRE 混沌工程 故障排查

企业如何才能发挥出知识管理真正的价值

小炮

知识管理 企业知识管理

java培训Mybatis动态Sql处理解析

@零度

sql mybatis JAVA开发

设计消息队列存储消息数据的 MySQL 表格

风中奇缘

#架构实战营 「架构实战营」

建信金科在中国建设银行物联网平台项目的实践

EMQ映云科技

物联网 IoT 金融 银行 emq

@DateTimeFormat 注解 和 @JsonFormat 注解

乌龟哥哥

4月月更

「架构实战营」模块八 消息队列存储设计

hxb

「架构实战营」

谈谈客户体验管理有效实施

龙国富

客户体验 CEM CXM 客户体验管理

攻克编译器技术

刘旭东

编程语言 编译器原理 4月月更

Docker 实战教程之从入门到提高 (六)

Jerry Wang

Docker 容器 docker image 容器镜像 4月月更

云原生训练营 -Week08-2

jjn0703

模块8作业

Leo

架构实战营

spring-cloud-kubernetes背后的三个关键知识点

程序员欣宸

java 4月月更

加速OpenHarmony生态繁荣,华为使能OpenHarmony发行版厂商

科技汇

重学架构之消息队列存储消息数据的 MySQL 表格

陈华英

架构实战营 「架构实战营」

软件工程学习之道

乌龟哥哥

4月月更

入驻快讯|欢迎小红书技术团队正式入驻 InfoQ 写作社区!

InfoQ写作社区官方

入驻快讯

设计消息队列存储消息数据的 MySQL 表格

浪飞

CityClub游览随笔记录

耳东@Erdong

InfoQ InfoQ写作社区2周年 City Club

C#开发团队在《Future Focus》系列文章中介绍C#的下一步发展规划_.NET_Robert Bazinet_InfoQ精选文章