Expression Bodied Function 它可以用在:

  • methods
  • user-defined operators
  • type conversions
  • read-only properties
  • indexers

看下面的样例:

public class RgbColor(int r, int g, int b)
{public int Red { get; } = r;public int Green { get; } = g;public int Blue { get; } = b;public string ToHex() =>string.Format("#{0:X2}{1:X2}{2:X2}", Red, Green, Blue);public static RgbColor operator - (RgbColor color) =>new RgbColor(color.Red ^ 0xFF,color.Green ^ 0xFF,color.Blue ^ 0xFF);
}

用於「方法」的样例:

public string ToHex() => string.Format("#{0:X2}{1:X2}{2:X2}", Red, Green, Blue);
public override string ToString() => this.Name;

用於「user-defined operators」的样例:

  public static RgbColor operator - (RgbColor color) =>new RgbColor(color.Red ^ 0xFF,color.Green ^ 0xFF,color.Blue ^ 0xFF);
public static Complex operator +(Complex a, Complex b) => a.Add(b);

用於「read-only property」的样例:
特别注意,这是 Read Only Property 而不是 Field

public string ID => Guid.NewGuid().ToString();

又一个样例:

public class Point(int x, int y) {public int X => x;public int Y => y;public double Dist => Math.Sqrt(x * x + y * y);public Point Move(int dx, int dy) => new Point(x + dx, y + dy);
}

用於「type conversions」的样例:实现 string 和 Name 之间的隐性转换

public static implicit operator string(Name n) => n.First + " " + n.Last;

用於「indexers」的样例:

public Customer this[Id id] => store.LookupCustomer(id);

版权声明:本文博主原创文章。博客,未经同意不得转载。

转载于:https://www.cnblogs.com/zfyouxi/p/4915100.html

C# 6.0 (C# vNext) 的新功能:Expression Bodied Functions and Properties相关推荐

  1. C# 6.0 (C# vNext) 的新功能:Exception-Handling Improvements

    于 C# 6.0 包裹在异常处理的新功能,有两个方面的改进: 异步处理(async and await)能力 catch block 总结使用.于 C# 5.0 释放 async and await, ...

  2. 两千字揭密 MySQL 8.0.19 三大索引新功能:隐藏索引,降序索引,函数索引

    导读:本文详细介绍 MySQL 8.0.19 三大索引新功能,隐藏索引,降序索引,函数索引,结合其他同仁的技术应用案例,进一步进行验证改编,最后总结心得,希望对大家有帮助. MySQL 8.0 版本带 ...

  3. groupby索引有效吗_两千字揭密 MySQL 8.0.19 三大索引新功能

    原文链接:https://www.modb.pro/db/22619 导读:本文详细介绍 MySQL 8.0.19 三大索引新功能,隐藏索引,降序索引,函数索引,结合其他同仁的技术应用案例,进一步进行 ...

  4. 微信小程序0.11.122100版本新功能解析

    微信小程序0.11.122100版本新功能解析 我的知乎专栏-小楼昨夜又秋风 https://zhuanlan.zhihu.com/oldtimes 新版本就不再吐槽了,整的自己跟个愤青似的.人老了, ...

  5. android 打开微信好友动态,朋友圈可以查看“访客记录”?微信8.0.1不简单,新功能大解析...

    前段时间,iOS系统提前更新了8.0版本,这让安卓用户非常不满.满世界的苹果用户都在体验微信的新功能,只有安卓用户一脸懵,好在安卓系统的用户终于等到了.微信每一次的更新都是影响重大的,因为在微信的背后 ...

  6. android-9.0主要有哪些新功能(Pie)

    Android 9 功能和 API: Android 9.0 利用人工智能技术,让手机变得更智能.更快,并且还可以随着用户的使用习惯进行调整. 利用 Wi-Fi RTT 进行室内定位 Android ...

  7. 八猴模型html文件,4年来首次更新!八猴4.0都有哪些新功能?

    好了,应一位老粉丝的要求,我们今天来说说8猴新版4.0的功能. 前天吧,具体哪天忘了,国内和国外有时差,但是不管了,Marmoset发布了Toolbag4.0,也就是我们国内小伙伴俗称的八猴,这也是近 ...

  8. android7.12新功能,安卓7.0值得注意的新功能 新增分屏和更合理的通知栏

    安卓7.0系统发布在即,虽说原生安卓系统的发布到最终变成针对各机型优化后的ROM发送到用户手上还需要一段时间,不过这些新功能都还是值得关注一下的.小米的MIUI9.华为的EMUI等等大手机厂商也都在向 ...

  9. Corel 会声会影 2023 旗舰版雨糖科技v26.0.0.163特别版新功能介绍

    Corel 会声会影 2023 旗舰版雨糖科技v26.0.0.163特别版是一款使用起来十分件便捷的影视后期视频编辑处理软件,会声会影正式版操作简单,还具备了独特创意.灵活有趣等特点,并且软件还具备了 ...

最新文章

  1. 基于JSP实现毕业设计选题系统
  2. golang 使用 http socks 代理
  3. 在一个IIS上同时运行两个版本ASP.NET报错的
  4. 内核对象管理:Slab,Slub
  5. 训练日志 2018.10.18
  6. JavaScript 时间戳(互相转换)(自定义格式)- 案例篇
  7. sudo -u hdfs hdfs balancer出现异常 No lease on /system/balancer.id
  8. JMeter的编码与HTTP请求
  9. Mysql调优ref_【总结】mysql调优
  10. 蓝牙定位在各行业领域中的应用及蓝牙定位原理浅析-新导智能
  11. 网闸准入控制负载均衡
  12. Python的优点和缺点
  13. 裁判文书App(2020最新版) 逆向过程分析
  14. 控制极限(UCL,LCL) 和规格极限(USL,LSL)
  15. P2749 夜空繁星
  16. 微机原理与接口技术系列笔记(一)
  17. Linux运维基本功(肆)---Linux文件管理
  18. HDU 1983:Kaitou Kid - The Phantom Thief (2)
  19. UVA 1471 Defense Lines (LIS变形)
  20. 【Anaconda3】anaconda的下载与安装

热门文章

  1. Android LBS系列05 位置策略(一)
  2. RavenDB:基于Windows/.NET平台的NoSQL数据库
  3. 逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种。通过历史数据的表现对未来结果发生的概率进行预测。例如,我们可以将购买的概率设置为因变量,将用户的
  4. Java学习进阶—高级编程
  5. 3.19PMP试题每日一题
  6. 数据显示,中国近一半的独角兽企业由“BATJ”四巨头投资
  7. JavaScript浮点运算0.2+0.1 !== 0.3
  8. MySQL启动很慢的原因
  9. OC基础--OC中的类方法和对象方法
  10. War-Driving(战争驾驶***)