50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

数字人民币弯道超车领先世界,采用独创设计彻底根治区块链顽疾

CECBC

Linux之yum命令

入门小站

Linux

摸鱼小技巧之IDEA调试篇一~

4ye

Java debug 后端 IDEA 8月日更

Battle:你会TLAB,我会逃逸分析

阿Q说代码

逃逸分析 8月日更 栈上分配 同步省略 标量替换

Go- if-else结构

HelloBug

if Go 语言 else

apipost--接口流程化测试

与风逐梦

软件测试 接口测试 软件自动化测试

container 包详解

Rayjun

Go 语言

儿子教会我的态度

箭上有毒

8月日更

手撸二叉树之另一棵树的子树

HelloWorld杰少

数据结构与算法 8月日更

混合云时代来临,你的存储ready了吗?

焱融科技

云计算 分布式 高性能 云存储 混合云

微信业务架构图 & 学生管理系统

I see you

docker入门:elk环境安装记录

小鲍侃java

8月日更

百度地图开发-搭建基础脚手架 01

Andy阿辉

android Android Studio 8月日更

通过 UIView 和 UIControl 实现的蒙层,哪种更简单?

fuyoufang

swift iOS 知识体系 8月日更

在openGauss上做开发?这个大赛拿出30万寻找开源的你

华为云开发者联盟

数据库 开源 信创 opengauss 鲲鹏

自适应负载均衡算法原理与实现

万俊峰Kevin

负载均衡 微服务 负载均衡算法 Go 语言

极客时间架构实战营作业一

jjn0703

架构实战营

springBoot中redis的自动装配

Rubble

8月日更

前端人员必会工具-apipost两分钟上手(2分钟玩转apipost)

Proud lion

大前端 测试 后端 Postman 开发工具

国产数据库的挑战与机遇

晨山资本

数据库 大数据 云原生 超融合

FusionInsight怎么帮「宇宙行」建一个好的「云数据平台」?

华为云开发者联盟

大数据 数据仓库 FusionInsight 云数据平台 LakeHouse

统计机器学习导论(一)

Databri_AI

机器学习 统计

WEB常用HTML颜色代码表

入门小站

工具

判断是否为数组的 JavaScript 方法总结

编程三昧

JavaScript 数组 8月日更

Windows Server 内存高排查

耳东@Erdong

windows 内存 Windows Server 8月日更 rammap

Go Channel实例剖析

非晓为骁

源码 channel Go 语言 实例分析

如何构建 Spring Boot 12 因素应用

码语者

Sprint Boot

MySQL远程连接

一个大红包

8月日更

多看了几套房

escray

生活记录 8月日更

遇见低码:在价值中审视

华为云开发者联盟

ide 低代码 应用 开发语言 低成本

英国“蓝色”氢气计划因碳足迹高遭受重击

CECBC

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