亮网络解锁器,解锁网络数据的无限可能 了解详情
写点什么

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

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

关注

评论

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

阿里四年技术 TL 的得失总结:如何做好技术 Team Leader

阿里巴巴云原生

云计算 项目管理 程序员 微服务 云原生

教你用Java字节码做点有趣的事

比伯

Java 编程 架构 程序人生 计算机

三张图解释静态NAT、动态NAT、PAT

CSS(六)——用CSS设置图像效果

程序员的时光

程序员 大前端 七日更 28天写作

一文搞懂“技术债”

李忠良

28天写作

创业失败启示录|雨季后的明媚阳光

阿萌

28天写作 创业失败启示录

一个 3 年 Java 程序员 5 家大厂的面试总结(已拿Offer)

Java架构之路

Java 程序员 架构 面试 编程语言

Libra演进与数字货币国际化

CECBC

区块链

nodejs的调试debug

程序那些事

debug 调试 nodejs 程序那些事 程序调试

Java基础--2021Java面试题系列教程--大白话解读

JavaPub

Java 面试 javapub

智能汽车为什么新势力有胜算(28天写作 Day20/28)

mtfelix

28天写作 新能源汽车 智能汽车 造车新势力

程序员入职新公司,只需8步,直接凸显出个人价值

Java架构师迁哥

关于垃圾收集器你了解多少?一文总结七大垃圾收集器

Java鱼仔

Java JVM 垃圾收集

产品训练营-第五课

Geek_娴子

30天消化MyBatis源码解析笔记,吊打面试官,offer接到手软

Java架构之路

Java 程序员 架构 面试 编程语言

5年Java经验不会源码被拒,苦学这些Spring源码笔记后,面试不再慌

Java架构之路

Java 程序员 架构 面试 编程语言

开发质量提升系列:问题登记列表(下)

罗小龙

生产事故 28天写作 解决思路

Flink可靠性的基石-checkpoint机制详细解析

五分钟学大数据

大数据 flink

这是阿里技术专家对 SRE 和稳定性保障的理解

阿里巴巴云原生

项目管理 运维 云原生 安全 监控

KubeVela:标准化的云原生平台构建引擎

阿里巴巴云原生

容器 云原生 k8s API OAM

9个REST API设计的基本准则

devpoint

APi设计 RESTf

WebPack | Loader处理非JavaScript模块机制详解

梁龙先森

JavaScript 大前端 webpack 28天写作

模块分解 - 微服务架构认识与思考

raox

“复制”马斯克(一):全世界都会为“自大狂”让路吗?

脑极体

原来酸奶是这个味道,真香!「幻想短篇 20/28」

道伟

28天写作

“区块链新闻编辑部”: 从“云媒体”到“链媒体”的现实跨越

CECBC

区块链技术

HDFS是如何设计架构的?

大数据老哥

10 个 JavaScript 简洁代码小技巧(文末彩蛋)

零和幺

JavaScript 大前端 CleanCode

Dubbo 3.0 前瞻之对接 Kubernetes 原生服务

阿里巴巴云原生

容器 运维 云原生 k8s dubbo

精彩的封面 | 视频号 28 天(20)

赵新龙

28天写作

28天瞎写的第二百三十天:DIY 键盘的故事

树上

28天写作 机械键盘 GH60

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