写点什么

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

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

关注

评论

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

智能化时代的数据集成技术革新

Apache SeaTunnel

大数据 开源 数据同步 Meetup Apache SeaTunnel

EMQ 映云科技为抗疫项目提供全托管 MQTT 云服务免费使用

EMQ映云科技

物联网 IoT mqtt emq 抗疫

足不出户,搞定交付——独家交付秘籍(第二回)

阿里巴巴云原生

无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接口

crudapi

oracle 零代码 API crud 增删改查

在线XML转JSON工具

入门小站

工具

【高并发】解密导致并发问题的第三个幕后黑手——有序性问题

冰河

并发编程 多线程 协程 异步编程 精通高并发系列

领域驱动设计(DDD)靠谱么?

架构精进之路

DDD 4月日更 4月月更

适合中小企业的知识库软件有哪些?

小炮

知识管理

我真不信,这年头还有人能懂SpringBoot的ClassLoader加载机制

Java工程师

Java spring 程序员 科技

中国SaaS的增长真相|ToB大师课

ToB行业头条

预约中,2022京东云产业融合新品发布会线上开启

京东科技开发者

云计算 京东云 产品发布会 直播预约

提升职场竞争力!低代码开发师(高级)认证发布

一只大光圈

低代码 数字化 钉钉宜搭 宜搭

linux之ssh命令

入门小站

Linux

互联网的下一站,大概率是能源

脑极体

机器人流程自动化评估体系全面助力垂直行业智能化转型

王吉伟频道

RPA 机器人流程自动化 信通院

HertzBeat入GVP啦,并 v1.0.beta.7 发布,易用友好的云监控系统

TanCloud探云

开源 APM angular java;

圆桌派来啦!与行业大咖聊聊Dapr的发展与实践

行云创新

云原生 dapr

Module Federation在客服工单业务中的最佳实践

得物技术

前端 Module 模块 iframe Federation

京东运动露营活动亮相首钢园,精彩持续整个四月

科技新消息

博睿数据首批加入云科通明湖生态联盟,赋能信创生态谋未来

博睿数据

数字产业化快于产业数字化?

BeeWorks

软件开发中的风险如何处理?

源字节1号

微信小程序 软件开发

《数字经济全景白皮书》Z世代用户洞察篇(1)重磅发布!

易观分析

Z世代

PLG公司的机遇和挑战

LigaAI

SaaS LigaAI PLG

netty系列之:netty中的核心解码器json

程序那些事

Java Netty 程序那些事 4月月更

Apache flink - PartitionNotFoundException

GeekYin

flink 消费 kafak 错误排查

微信朋友圈的高性能复杂度

哈喽

「架构实战营」

后端开发【一大波干货知识】定时器方案红黑树,时间轮,最小堆

Linux服务器开发

定时器 后端开发 红黑树 时间轮 Linux服务器开发

【Zeekr_Tech】汽车软件敏捷开发和分支管理

Zeekr_Tech

敏捷开发 智能驾驶

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