写点什么

C#的未来计划

  • 2013-12-25
  • 本文字数:829 字

    阅读完需:约 3 分钟

NDC London 上,Mads Torgersen 提出了对未来 C#语言的的计划。需要注意的是,这些只是计划,不会保证在哪个版本发布。 Damien Guard 对这些建议进行了总结和简要的分析,我们在此为您挑选了其中的一些内容。

只读属性

只读自动属性将允许开发者在一行代码中声明属性及其后台字段。

public int X { get; } = x;静态类型 using 语句

Visual Basic 和 Java 都允许在命名空间中导入模块(C#静态类)。这样可以移除常用的静态函数前面的重复代码,如“Math.”。

主构造函数

通过在类名后加上参数,开发者将不再需要显式创建构造函数。这可以移除将构造函数参数复制到私有字段时的冗长代码。

public class Point(int x, int y) { private int x, y; }属性和方法表达式

属性表达式可以为简单的只读属性剔除一些原来必须的样板代码。

public double Distance => Math.Sqrt((X * X) + (Y * Y));方法表达式也是如此,当然它们可以接受参数。注意,参数化的属性仍然没有列入考虑范围之内。在未来相当长一段时间里,这只能是 VB 独有的特性。

函数参数

如今大多数开发者从来不用数组,除非要使用 params 关键字。因此有人提议让 params 也支持 IEnumerable 接口。如果这样做,其他语言(如 Visual Basic)也需要支持。还有人提议可以使用 out 关键字声明局部变量。例如,

int.TryParse("123", out int x);空传播

在处理凌乱的数据时,开发者经常需要在读取属性或调用方法前编写一系列空判断逻辑。?. 语法将帮助我们剔除这些逻辑,只有当它前面的值不为空时,才会调用后面的方法。

var bestValue = points?.FirstOrDefault()?.X;在本例中,如果 points 为空,或 points.FirstOrDefault() 返回空,那么将忽略.X,并返回空。它也可以和?? 连接使用,以提供可选的默认值。

var bestValue = points?.FirstOrDefault()?.X ?? -1;Objective-C 和 Smalltalk 这样的“消息传递”语言都包含这样的语法。它通常被认为是有问题的,因为本应抛出空引用异常的地方,却悄无声息地被忽略了。

原文英文链接: Future Plans for C#

2013-12-25 09:024240
用户头像

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

关注

评论

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

数字化转型能力成为中国纺织服装业未来发展的核心动能

CECBC

纺织面料

我与 InfoQ 写作平台的这些事

xcbeyond

个人成长 1 周年盛典 InfoQ 写作平台 1 周年 5月日更

如何提升工作效率

wangwei1237

工作效率 文化 大历史理论

算法训练营 - 学习笔记 - 第四周

心在飞

软件开发不同阶段的命名风格

顿晓

5月日更 命名 风格

清华学霸!用18行代码讲解Java接口,程序员:果然厉害,学到了

牛哄哄的java大师

Java 接口

H5和WebRTC实时通讯方案的不同

liuzhen007

5月日更

通向未来的十二个趋势

CECBC

人工智能

区块链如何推动人力资源和薪酬管理体系变革?

CECBC

人力资源

【JS】作用域(入门篇)

德育处主任

JavaScript 大前端 Web js

网络攻防学习笔记 Day3

穿过生命散发芬芳

5月日更 网络攻防

第八大洲环游记(一):平流层上的非洲故事

脑极体

多家银行增设数字金融部 架构调整背后透露出哪些信号?

CECBC

银行

【音视频】弱网下的音视频通讯

Bob

音视频 直播技术

模块三作业

c

架构实战营

顺序一致性(Sequential Consistency)

UNDEFINED

sequential consistency Java Concurrency distributed system

限时白嫖!腾讯内部员工培训Java资料,网友:大厂就是不一样

牛哄哄的java大师

Java

OAuth 2.0 了解了,OAuth 2.1 呢?

Zhang

OAuth 2.0 认证授权 OAuth 2.1

【LeetCode】砖墙Java题解

Albert

算法 LeetCode 5月日更

让 Go 代码跑上移动端

Rayjun

Go 语言 gomobile

未来5年或将出现颠覆型区块链应用,资产通证化将重构实体经济

CECBC

区块链

高级研发工程师都有哪些特点?【超级准】

liuzhen007

技术人生 工作体会 程序猿

白嫖福利!阿里P7大神梳理的Java数组详细知识点,太实用了

飞飞JAva

Java

网络攻防学习笔记 Day2

穿过生命散发芬芳

5月日更 网络攻防

微服务-技术专题-微服务进程间通信

码界西柚

微服务 分布式架构 5月日更

别再傻傻分不清AVSx H.26x MPEG-x了

LoveYFan

音视频

3.5 Go语言从入门到精通:标准输入输出fmt包

xcbeyond

Go 语言 5月日更 fmt包

【LeetCode】整数反转Java题解

Albert

算法 LeetCode 5月日更

Redis-技术专题-Redis分布式锁实现方案

码界西柚

redis 分布式锁 5月日更

把复杂留给自己,简单留给用户

石云升

5月日更

自己在 InfoQ 平台的期冀——共同成长

liuzhen007

1 周年盛典

C#的未来计划_C#_Jonathan Allen_InfoQ精选文章