位置: 编程技术 - 正文

在C#6.0中的新语言特性(c#7.0新语法)

编辑:rootadmin

推荐整理分享在C#6.0中的新语言特性(c#7.0新语法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:&在c#,&在c#,c#的new有几种用法,c#9新语法,c#7.0新语法,c#语言用于,c#5.0新增的几大新特性,c#7.0新语法,内容如对您有帮助,希望把文章链接给更多的朋友!

在C#6.0中的新语言特性(c#7.0新语法)

孙广东 .6.5

What's New in C# 6:

Platform Development系列: Productivity: What's New in C# 6系列: Compiler Platform ("Roslyn") 的开源源代码: Language Features in C# 6 文章: 中执行。1、Auto-property enhancements自动属性增强1.1自动属性的初始值设定,现在您可以添加一个自动属性的初始值设定,就像字段:public class Customer{ public string First { get; set; } = "Jane"; public string Last { get; set; } = "Doe";}按写的顺序执行该初始值设定项,就像普通的字段初始值设定项一样,自动属性初始值设定项也不能引用this的内容–毕竟他们在对象之前执行初始化。1.2 只读属性的自动属性public class Customer{ public string First { get; } = "Jane"; public string Last { get; } = "Doe";}大家会好奇只读属性之前是怎么进行赋值的呢? 在构造函数中:public class Customer{ public string Name { get; }; public Customer(string first, string last) { Name = first + " " + last; }}表达式--函数体成员(Expression-bodied function members):Lambda表达式可以被声明为表达式体以及组成常规函数体块。此功能能带来同样的便利函数类型成员。Expression bodies on method-like members:public Point Move(int dx, int dy) => new Point(x + dx, y + dy); public static Complex operator +(Complex a, Complex b) => a.Add(b);public static implicit operator string(Person p) => p.First + " " + p.Last;public void Print() => Console.WriteLine(First + " " + Last);Expression bodies on property-like function members:属性和索引器:public string Name => First + " " + Last;public Customer this[long id] => store.LookupCustomer(id); Using static:该功能允许导入所有要可访问类型的静态成员,使他们无需限定即可使用后面的代码中:using static System.Console;using static System.Math;using static System.DayOfWeek;class Program{ static void Main() { WriteLine(Sqrt(3*3 + 4*4)); WriteLine(Friday - Monday); }}这是伟大的,当你有一组相关功能的特定域,它随时使用。System.Math将是一个常见的例子。它还允许您直接访问单个枚举类型的值,如System.DayOfWeek的成员。Extension methods:扩展方法是静态方法,但应作为实例方法使用。而不是global 范围的扩展方法,使用静态特性使该类型的扩展方法为扩展方法可用:using static System.Linq.Enumerable; // The type, not the namespaceclass Program{ static void Main() { var range = Range(5, ); // Ok: not extension var odd = Where(range, i => i % 2 == 1); // Error, not in scope var even = range.Where(i => i % 2 == 0); // Ok }}Null-conditional operators有时代码往往要做null检查。空条件运算符允许您访问成员,只有当接收者是非null元素,否则提供一个空的结果:int? length = customers?.Length; // null if customers is nullCustomer first = customers?[0]; // null if customers is null空条件运算符为了方便,与空合并运算符?? 一起使用:int length = customers?.Length ?? 0; // 0 if customers is null空条件操作符,具有短路的行为,也就是当前面的内容不为空的时候,后面紧跟着的链式成员才会被访问。int? first = customers?[0].Orders.Count();这个例子是本质上相当于:int? first = (customers != null) ? customers[0].Orders.Count() : null;当然null条件运算符本身可以被链接,如果有需要不止一次地检查null链中:int? first = customers?[0].Orders?.Count();请注意,?操作符后面的调用(用括号括起的参数列表)无法立即执行–这将导致太多的句法歧义。因此,直接调用一个委托,如果它的存在,只有不工作的方式。但是,您可以通过调用委托方法:if (predicate?.Invoke(e) ?? false) { … }我们期望这种模式的一个非常普遍的使用将在触发事件上:PropertyChanged?.Invoke(this, args);String interpolation字符串插值:String.Format 是非常灵活的和有用的,但他们使用的是有点笨拙而且容易出错。尤其不幸的是使用{0}等占位符格式字符串,它必须单独行上提供的参数:var s = String.Format("{0} is {1} year{{s}} old", p.Name, p.Age);字符串插值,您可以把表达式在正确的地方,通过"holes"直接在字符串:var s = $"{p.Name} is {p.Age} year{{s}} old";就像String.Format ,可选的对齐方式和格式说明符可以得到:var s = $"{p.Name,} is {p.Age:D3} year{{s}} old";内容可以几乎是任何表达式,甚至包括其他字符串:var s = $"{p.Name} is {p.Age} year{(p.Age == 1 ? "" : "s")} old";Notice that the conditional expression is parenthesized, so that the : "s" doesn’t get confused with a format specifier.请注意,是带圆括号的条件表达式,以便 : "s" 不混乱格式说明符。nameof expressions:(if x == null) throw new ArgumentNullException(nameof(x));WriteLine(nameof(person.Address.ZipCode)); // prints "ZipCode"Index initializers:对象和集合初始值设定项可用于以声明方式初始化字段和属性,或给集合一组元素。使用索引器初始化字典和其他对象不优雅。我们正在添加新对象初始值设定项的语法允许您通过任何索引器,它的新对象设置键的值:var numbers = new Dictionary<int, string> { [7] = "seven", [9] = "nine", [] = "thirteen"};Exception filters功能早VB 有. F#有. 现在C#中也有.try { … }catch (MyException e) when (myfilter(e)){ …}private static bool Log(Exception e) { /* log it */ ; return false; }…try { … } catch (Exception e) when (Log(e)) {}Await in catch and finally blocks:Resource res = null;try{ res = await Resource.OpenAsync(…); // You could do this. …} catch(ResourceException e){ await Resource.LogAsync(res, e); // Now you can do this …}finally{ if (res != null) await res.CloseAsync(); // … and this.}Extension Add methods in collection initializers:Improved overload resolution:

Unity 相关经典博客资源总结 就作为一个记录吧,把平时看过的Unity相关的一些好的Blog记录并分享。好的论坛:Unity官方脚本点评:这个不用说了,最核心的内容,理解整个Unity引擎

Unity3D NGUI如何在UI上显示3D模型 1、创建一个3D摄像机,渲染3D模型。(我为了方便就把模型放到了Camera的下面,你可以不这样)2、在2D里面指定一个TopLeft和BottomRight,用来表示模型渲染

相机跟随主角移动,并带有延迟效果 相机跟随主角移动,并带有延迟效果usingUnityEngine;usingSystem.Collections;namespaceCompleteProject{//脚本使用在摄像机身上publicclassCameraFollow:MonoBehaviour{publicTransformp

标签: c#7.0新语法

本文链接地址:https://www.jiuchutong.com/biancheng/372823.html 转载请保留说明!

上一篇:Unity游戏开发的数学与物理 4 ( 在物体运动中加入重力 )(unity游戏开发的技术路线有哪些)

下一篇:Unity 相关经典博客资源总结

  • 小规模纳税人如何转一般纳税人
  • 非税收入票据能否税前扣除
  • 公司注销还能要回钱吗
  • 债权人豁免债务的账务
  • 小微企业城建税优惠政策2023
  • 小规模纳税人水利基金怎么报税
  • 合并报表时存货怎么处理
  • 银行抵债资产处置需要缴纳什么税费
  • 用于出口的进项可以抵扣吗
  • 租赁公司扣押金
  • 公司支付收益权转让怎么做账?
  • 营改增后非增值税应税项目包括哪些
  • 免税销售额扣除项目本期实际扣除额
  • 董事费如何计算个人所得税
  • 利润表申报本年怎么填
  • 金融企业不良资产批量收购处置业务
  • 理财代持有法律效力吗
  • 购买东西收据
  • 2023增值税免税政策
  • 家具属于固定资产什么类别
  • 借用下属单位人员违反什么政策
  • 两个公司发工资违法吗
  • win10右键没有打印
  • 经营性支付与非经营性支付
  • 圣海伦斯山国家火山纪念区
  • 下列关于企业发生的税费说法正确的是
  • php数组函数题目
  • PHP:pg_send_prepare()的用法_PostgreSQL函数
  • 员工的医药费
  • 非营利组织营利包括哪些
  • 瓜纳华托大学世界排名
  • 微信公众号php开发教程
  • 小规模纳税人研发费用加计扣除优惠政策
  • 汽车上牌照的费用计入什么会计科目
  • 缴纳社保记账凭证附件
  • 如何设置linux
  • php怎么修改当前用户的密码
  • 收保险公司工伤怎么赔偿
  • 固定业户应当向其机构
  • mysql查询字段为空的数据
  • 高新技术企业认定中介机构
  • 购销合同印花税按70%
  • 如何冲销应付账款
  • 发票冲红后税款一定会退回吗
  • 与其他企业联合投资一个项目要怎么做账务处理?
  • 经营租赁不动产租赁发票开具要求
  • 辅助核算设置后使用后还可以随时修改
  • 维修费收入怎么结转销售成本
  • 生产车间的保险有哪些
  • 电子商务还会继续发展吗
  • OBJECTPROPERTY与sp_rename更改对象名称的介绍
  • ubuntu16.04.1下 mysql安装和卸载图文教程
  • windows server2008系统弹出今天必须修改密码该怎么处理?
  • win7无法打开此文件
  • mac打印预览快捷键是什么
  • 开启linux系统路由转发功能的语句
  • RedHat Linux5.5下Oracle 11g安装图解教程
  • 电脑qq老是弹出fi
  • xp电脑小游戏
  • win101909的02累积更新
  • windows开启快速启动
  • http://www.2cto.com/kf/201402/280576.html
  • opengl glm库
  • jquery制作图片提示效果
  • nodejs xhr
  • 触摸按钮失灵怎么回事
  • 编写批处理运行程序
  • three.js入门教程(合集)
  • javascipt:void
  • android有哪几个特点
  • 利息收入通过什么科目核算
  • 广东省地方税务局发票查询
  • 何艳娟出生年月
  • 投诉政府平台在哪里投诉
  • 电子税务完税证明怎么打印
  • 江苏省常州市金坛区茅山风景区
  • 国税地税征管体制改革方案
  • 二手车中介公司怎么做账报税
  • 烟叶税是谁交
  • 契税维修基金交给谁
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设