小标
2018-05-18
来源 :
阅读 2317
评论 0
摘要:在 NDC London 上,Mads Torgersen 提出了对未来 C#编程的的计划。需要注意的是,这些只是计划,不会保证在哪个版本发布。Damien Guard 对这些建议进行了总结和简要的分析,我们在此为您挑选了其中的一些C#编程内容。接下来就让我们一起来看看吧。
在 NDC London 上,Mads Torgersen 提出了对未来 C#编程的的计划。需要注意的是,这些只是计划,不会保证在哪个版本发布。Damien Guard 对这些建议进行了总结和简要的分析,我们在此为您挑选了其中的一些C#编程内容。接下来就让我们一起来看看吧。
只读属性
只读自动属性将允许开发者在一行代码中声明属性及并设置该字段的默认值。
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);
空传播(Null Propagation)
在处理凌乱的数据时,开发者经常需要在读取属性或调用方法前编写一系列空判断逻辑。?.语法将帮助我们剔除这些逻辑,只有当它前面的值不为空时,才会调用后面的方法。
var bestValue = points?.FirstOrDefault ()?.X;
在本例中,如果 points 为空,或 points.FirstOrDefault () 返回空,那么将忽略.X,并返回空。它也可以和??连接使用,以提供可选的默认值。
var bestValue = points?.FirstOrDefault ()?.X ?? -1;
Objective-C 和 Smalltalk 这样的“消息传递”语言都包含这样的语法。它通常被认为是有问题的,因为本应抛出空引用异常的地方,却悄无声息地被忽略了。
本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言C#.NET频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号