写点什么

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

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

关注

评论

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

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

LoveYFan

音视频

网络攻防学习笔记 Day3

穿过生命散发芬芳

5月日更 网络攻防

五月,开篇

程序员架构进阶

个人提升 28天写作 5月日更 总结思考

卸载 Navicat!事实已证明,正版客户端,它更牛逼

比伯

Java 编程 架构 互联网 计算机

区块链蕴含的变革力量

CECBC

区块链

区块链数字钱包——未来世界的银行卡

CECBC

区块链

ECMAScript 2019(ES10)新特性简介

程序那些事

JavaScript ecmascript nodejs 程序那些事

教你写好代码注释

元闰子

软件开发 代码注释

让 Go 代码跑上移动端

Rayjun

Go 语言 gomobile

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

liuzhen007

1 周年盛典

原来长大以后,我发现以前面临到的难题并没有不见,只是换了角度出现在生活的另一面。

叶小鍵

如何选择Intel 傲腾持久内存的几种工作模式

Steven Xu

内存 存储 内存数据库 Snapshot 高性能服务器

模块三作业-消息队列系统架构设计文档

张大彪

5分钟快速上手结构化思维方式

鲁米

方法论

教你写好技术文章

元闰子

技术人 写作技巧

测试

bilibili

对Spring Cloud+Nginx架构的主要组件不清楚,看这个就好

小Q

Java 学习 架构 面试 微服务

从理论走向实践,金五银六Java线程池指南已上线,一次性教给你!

飞飞JAva

Java 线程池

机器学习 Machine Learning- 吴恩达Andrew Ng 第1~5课总结 John 易筋 ARTS 打卡 Week 46

John(易筋)

ARTS 打卡计划

一文入门Golang之文件操作【推荐收藏】

liuzhen007

文件 Go 语言 5月日更

道-可道

顿晓

表达 5月日更

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

牛哄哄的java大师

Java 接口

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

脑极体

什么是批判性思考及推理

sherlockq

最高学习效率:15.87%

石云升

学习 5月日更

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

liuzhen007

5月日更

【LeetCode】整数反转Java题解

Albert

算法 LeetCode 5月日更

基于腾讯云Serverless部署游戏:合成大西瓜

一颗小树

#Serverless #python #腾讯云

几种讨论场景下的原则

sherlockq

从分层架构到微服务架构(一)

元闰子

学习 读书笔记 架构

一张漫画解读:程序员为什么会跑路?

Java架构师迁哥

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