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

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

关注

评论

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

MASA MAUI iOS如何绑定微信

MASA技术团队

MASA MAUI Xamarin MASA Blazor

Webpack构建速度优化

Geek_02d948

webpack

Webpack最佳实践

Geek_02d948

webpack

nodejs实现jwt

coder2028

node.js

为什么说网络安全行业是IT行业最后的红利?

网络安全学海

网络安全 安全 信息安全 渗透测试 WEB安全

软件测试 | 测试开发 | 校招面试真题 | 测试流程大概是什么?

测吧(北京)科技有限公司

测试

Spring面试题(部分)

Andy

太全!不愧是Github爆火的阿里812页高并系统设计核心技术全解

程序员小毕

程序员 架构 程序人生 后端 高并发

Vue实战必会的几个技巧

yyds2026

Vue

记一次漏洞挖掘【网络安全】

网络安全学海

网络安全 安全 信息安全 渗透测试 WEB安全

架构实战营作业3

阿姆斯壮

架构实战营 架构实战训练营9期

js函数式编程讲解

hellocoder2029

JavaScript

软件测试面试真题 | Pytest 的内置 fixture 有哪些?

测试人

面试 软件测试 测试开发 测试流程

深入理解什么是TCP 粘包?粘包警察是什么梗?

C++后台开发

网络协议 TCP/IP 后端开发 C++开发 TCP 粘包

华为云数据库GaussDB(for MySQL),为企业云上业务发展保驾护航

爱尚科技

喜讯!麦聪软件获得国际权威机构颁发的CMMI3证书

雨果

麦聪软件 CMMI3

双向绑定

yyds2026

Vue

koa实战

coder2028

node.js

更易用的OceanBase|生态工具征文大赛正式开启!

OceanBase 数据库

「MySQL高级篇」MySQL索引底层原理,设计原则详解

Java全栈架构师

Java MySQL 数据库 程序员 索引

react组件深度解读

xiaofeng

React

正版软件授权代理限时无门槛开放!仅限十一月份!

淋雨

软件 销售 代理商

华为云数据库-GaussDB for MySQL数据库

爱尚科技

React高级特性之Context

夏天的味道123

React

拆解一下消息队列、任务队列、任务调度系统

Java永远的神

程序员 架构 程序人生 后端 java面试

、作用域链和它的一些优化

hellocoder2029

JavaScript

顶会最强的前20%!电影情感效应预测论文拿下ACMMM Oral收录!

阿里巴巴文娱技术

人工智能 情感计算

React高级特性之Render Props

夏天的味道123

React

react进阶用法完全指南

xiaofeng

React

用Js怒刷LeetCode

Geek_07a724

JavaScript LeetCode

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