写点什么

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

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

关注

评论

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

你肯定听说过requests,但你知道2022年有一个比 requests 还牛的爬虫库吗?

梦想橡皮擦

5月月更

【高并发】高并发环境下诡异的加锁问题(你加的锁未必安全)

冰河

并发编程 多线程 高并发 协程 异步编程

【大数据培训】面试中数据仓库重要概念

@零度

数据仓库 大数据开发

从服务端生成Excel电子表格(GcExcel + SpreadJS)

葡萄城技术团队

服务器端开发 前端表格控件 测试比较

前端生成PDF,让后端刮目相看

葡萄城技术团队

PDF pdf.js

618大促100用户级秒杀系统架构设计

IT屠狗辈

架构实战营

使用 OData 实施 SAP 系统与第三方系统集成的步骤概述

汪子熙

系统集成 SAP OData 5月月更 第三方系统

【刷题第七天】15 三数之和

白日梦

5月月更

云原生小课堂 | 如何打造一款软硬兼施、多功能、零损耗的云原生网络方案

York

云原生 性能 智能网卡vpc 容器网络方案

答题交互功能深入研究

CRMEB

设计模式之建造者模式

乌龟哥哥

5月月更

pycharm的安装

工程师日月

5月月更

自开发 Web 应用如何使用 SAP Customer Data Cloud 实现自定义登入功能

汪子熙

用户权限 第三方登录 SAP 登录验证 5月月更

浅析微服务全链路灰度解决方案

阿里巴巴云原生

阿里云 微服务 云原生 灰度

Go Web编程入门:路由

宇宙之一粟

Go Go web 5月月更

数据库连接池 -Druid 源码学习(三)

wjchenge

Druid 数据库连接池

Druid 连接池源码阅读 03

石小天

增强现实(AR)技术在企业管理软件中的一个实际创新案例

汪子熙

AR SAP 虚拟现实 增强现实 5月月更

druid 源码阅读 3——DataSource的结构(变量)

张大彪

CMMI研究院刚刚推出两门新认证课程

高山

培训 CMMI 确保安全 确保安防

C语言_结构体总结

DS小龙哥

5月月更

从服务端生成Excel电子表格(Node.js+SpreadJS)

葡萄城技术团队

SpreadJS 前端表格

聊聊 Kafka:Kafka 消息重复的场景以及最佳实践

老周聊架构

kafka 5月月更

Docker下的OpenResty三部曲之二:细说开发

程序员欣宸

Docker 5月月更

专访朱雷:昔日的游戏少年,如今的Python工匠

图灵教育

Python 程序员 图灵访谈

web前端培训单元测试入门知识分享

@零度

单元测试 web前端开发

如何让你的 WordPress 网站更安全

海拥(haiyong.site)

WordPress 5月月更

Autograd解析|OneFlow学习笔记

OneFlow

人工智能 深度学习 数学原理 Autograd模块

druid源码学习三-继续探究DruidDataSource类init方法

Nick

Apache Druid

FlyFish2.0版本后端源码学习笔记

云智慧AIOps社区

前端 大前端 数据可视化 大屏可视化

网站开发进阶(六十一)详解js中Number()、parseInt()和parseFloat()的区别

No Silver Bullet

5月月更 Number() parseInt() parseFloat()

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