写点什么

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

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

关注

评论

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

《恰如其分的软件架构》随笔一:模型是解决复杂问题的重要途径

panda

模型

在线SVG在线编辑器

入门小站

工具

2021考了个PMP

夏兮。

PMP Certification

图解MySQL(5)-Buffer Pool的flush链表

JavaEdge

2月月更

对 HTTP 缓存的全面总结

编程三昧

缓存 前端开发 HTTP 2月月更

如何阻止软件退化?

蜜糖的代码注释

Java 后端开发 项目实践 2月月更

团队开周会的目的:保证有效的协同效应和构建PDCA循环

panda

管理 PDCA 周会 协同效应

Netflix是如何做决策的? | 5. 在做决定时建立信心

俞凡

数据分析 netflix 大厂实践 2月月更

WebRTC 传输通道的建立过程解析 | 社区征文

liuzhen007

音视频 新春征文 2月月更

开源效能可视化平台介绍 -DevLake

夏兮。

效能平台 MARI

架构实战训练营-模块9-作业

温安适

「架构实战营」

架构训练营 week9 课程总结

红莲疾风

「架构实战营」

Linux之top命令

入门小站

Linux

架构训练营 week8 课程总结

红莲疾风

「架构实战营」

视频绿幕抠像一键搞定,这些好用工具你要知道。

彭宏豪95

效率 工具 视频剪辑

JVM进阶(三):内存分配与回收策略

No Silver Bullet

Java JVM 内存分配 2月月更

Netflix是如何做决策的? | 4. A/B测试结果之假阴性和统计功效

俞凡

数据分析 netflix 大厂实践 2月月更

JVM进阶(六):鲜为人知的二次标记

No Silver Bullet

JVM 日志分析 2月月更 二次标记

第七节:SpringBoot高级属性配置二

入门小站

springboot Java EE

JVM进阶(二):初识 JAVA 堆

No Silver Bullet

Java JVM 内存 2月月更

一条SQL更新语句是如何执行的?

蝉沐风

MySQL MySQL InnoDB

计算机视觉算法探究:OpenCV CLAHE算法详解| 社区征文

老猿Python

AI 算法 计算机视觉 新春征文 CLAHE

M3U8 视频封装格式的深度解析 | 社区征文

liuzhen007

音视频 新春征文 2月月更

如何写好代码注释?

蜜糖的代码注释

Java 后端 开发 2月月更

守护石谈学习Java之路

DaemonStone

Java 学习方法 经验分享 编程学习

在线标准程序员计算器

入门小站

工具

AI,机器人和元宇宙(9/100)

hackstoic

元宇宙

[架构实战营] 模块八作业

Geek_0ed632

「架构实战营」

JVM进阶(五):JAVA GC 之标记

No Silver Bullet

JVM 2月月更 标记 MAT

Jvm 参数默认值

努力努力再努力

JavaScript 数组常见操作(一)

编程三昧

JavaScript 前端开发 数组操作 2月月更

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