写点什么

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

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

关注

评论

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

EndNote 21 文献管理工具 Mac激活版 支持m1

加油,小妞!

文献管理 EndNote 21

感恩有你|恭喜 OpenTiny Vue 开源组件库喜迎1000+star!!!

OpenTiny社区

开源 前端 UI组件库

数字城市运行监测主题指标设计思路探讨

Geek_37rwst

Rectangle Pro for Mac 窗口布局增强工具

繁星

Rectangle Pro for Mac

FFA 2023 「流式湖仓」专场:从技术原理到应用实践打造流式湖仓新架构

Apache Flink

大数据 flink 实时计算

专业矢量图片转换工具 Vector Magic免激活最新

胖墩儿不胖y

Mac软件 矢量图软件

Macbook 电池最大充电限制工具:AlDente Pro for Mac

加油,小妞!

AlDente Pro

sublime text for Mac 注册激活版 附 激活码 支持M1

加油,小妞!

代码编辑器 sublime text

FFA 2023 「行业实践」专场: 金融/电力/汽车/互联网等多行业最佳实践

Apache Flink

flink

遥遥领先!TinyEngine 低代码引擎更新升级!

OpenTiny社区

开源 前端 低代码

SQL 中的运算符与别名:使用示例和语法详解

小万哥

MySQL 数据库 程序员 sql 后端开发

钱少事少效率高,华为云这款轻量应用服务器真乃职场神器

轶天下事

跨境电商独立站太烧钱?中小企业老板快收藏华为云这份省钱秘笈

轶天下事

Mac模拟飞行驾驶游戏:X-Plane 12 for Mac

彩云

X-Plane 12 飞行模拟游戏

Git客户端:SourceTree for Mac中文版

繁星

sourcetree Git客户端

Kubernetes 漫游:etcd

Phoenix

服务器的操作系统有哪些?

Geek_f19a80

服务器

LED面板显示屏驱动芯片

芯动大师

大量索引场景下 Easysearch 和 Elasticsearch 的吞吐量差异

极限实验室

数据库 搜索引擎 elasticsearch 吞吐量 easysearch

超强新品叠加价格特惠,华为云助力小程序开发红海“掘金”

轶天下事

SourceTree for Mac 最新激活 支持M1

彩云

sourcetree SourceTree Mac

天翼云智算基础设施平台“云骁”,驱动智算产业创新发展

极客天地

2023-11-25:用go语言,给定一个数组arr,长度为n,表示n个格子的分数,并且这些格子首尾相连, 孩子不能选相邻的格子,不能回头选,不能选超过一圈, 但是孩子可以决定从任何位置开始选,也可以

福大大架构师每日一题

福大大架构师每日一题

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