AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

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

关注

评论

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

Wireshark抓包分析Eureka注册发现协议

程序员欣宸

Java SpringCloud Eureka 7月月更

Qt | 串口通信 QSerialPort

YOLO.

通信 qt 串口 串口通信 7月月更

【LeetCode】奇数值单元格的数目Java题解

Albert

LeetCode 7月月更

纯CSS实现四种方式文本反差色效果

南城FE

CSS 前端 css动画 7月月更 反差色

查找——概念了解

乔乔

7月月更

Qt|字符排序以及转化问题

中国好公民st

qt 7月月更

TDesign 组件库技术方案指北

TDesign

开源 Vue React 组件库

Pro 单店版和多店版,你还傻傻分不清楚?

CRMEB

QT实现 文件夹复制

小肉球

qt 7月月更

《看完就懂系列》聊聊CSS3的 calc() 函数

南极一块修炼千年的大冰块

7月月更

新思科技助力提升开源治理水平

InfoQ_434670063458

开源 新思科技 软件供应链

你想知道的数组易错知识都在这了-C

芒果酱

7月月更

5G NR RRC连接控制

柒号华仔

5G 7月月更

老司机狂飙之路--EventBus原理简要分析

芝麻粒儿

android EventBus 7月月更

RocketMQ之消费者启动与消费流程

vivo互联网技术

RocketMQ 中间件 ACK

面对裁员?焦虑?不如好好投资自己

沃德

程序员 7月月更

软件架构-概述

架构

iOS 中的 Category

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

Java面向对象基础

五分钟学大数据

Java 7月月更

Linux 0.12 源码阅读

贾献华

7月月更

适合初学者的 10 个JavaScript 代码整洁技巧

devpoint

JavaScript ES6 7月月更 数据操作

在线直播系统源码——开源源码

开源直播系统源码

软件开发 直播源码 开源源码 在线直播系统源码

SLSA 框架与软件供应链安全防护

SEAL安全

SLSA 软件供应链安全

Node.js异步编程之Promise

是乃德也是Ned

node.js 前端 7月月更

GaussDB云数据库初步使用记录

DS小龙哥

7月月更

多传感器时间同步

秃头小苏

时间同步 7月月更

项目git commit时卡主不良代码:husky让Git检查代码规范化工作

zhoulujun

git husky lint-stated

自己搭建git服务器:linux自己Gitlab服务

zhoulujun

gitlab git私有参考 git部署 git服务端

深入JS函数中默认参数的使用

猪痞恶霸

前端 js 7月月更

不习惯的Vue3起步四 の 生命周期&provide/inject

空城机

Vue3 7月月更

注意!软件供应链安全挑战持续升级

SEAL安全

安全 软件供应链

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