登录  /  注册

C#的未来计划

伊谢尔伦
发布: 2016-11-24 13:19:45
原创
1345人浏览过

 在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这样的“消息传递”语言都包含这样的语法。它通常被认为是有问题的,因为本应抛出空引用异常的地方,却悄无声息地被忽略了。

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号