C# 5.0-.Net新特性
C# 5.0
VS2012 引入,参见:https://www.cnblogs.com/ctcx/p/5177635.html
调用者信息特性
CallerMemberNameAttribute | CallerFilePathAttribute | CallerLineNumberAttribute
.NET Framework 4.5 中新增,用于请求编译器在编译过程中进行代码的转换 。
使用方式:直接调用即可
public static void TraceMessage(string message, string errCode,
[CallerMemberNameAttribute] string memberName = "",
[CallerFilePathAttribute] string filePath = "",
[CallerLineNumberAttribute] int lineNumber = 0)
若要在 .NET Framework 4.0 中使用,需自定义特性
namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
public class CallerMemberNameAttribute : Attribute
{ } [AttributeUsage(AttributeTargets.Parameter, Inherited = false )]
public class CallerFilePathAttribute : Attribute
{ } [AttributeUsage(AttributeTargets.Parameter, Inherited = false )]
public class CallerLineNumberAttribute : Attribute
{ }
}
关键字async和await
简化异步编程,建议首先了解C# 4.0引入的:Task
在Lambda表达式中用循环变量
C#5.0中纠正循环变量覆盖,无须在循环中引入临时变量,直接常规编码即可。
C# 6.0
VS2015 引入,参考:https://www.cnblogs.com/dotnet261010/p/9147707.html
using static
命名空间语法糖,导入静态类
字符串嵌入值 | 空值运算符
$"{表达式|属性字段值}" //简化string.Format表达式
// null值亦可调用,程序不会报错,也不会输出任何值
string name = null; name?.ToString();
对象初始化器 | 异常过滤器
IDictionary<int, string> dictNew = new Dictionary<int, string>() {
[4] = "first", [5] = "second" //索引方式初始化
};
try {} //满足条件才进入catch
catch (Exception e) when (匹配条件) { }
同时支持在catch和finally中使用await运算符。
nameof表达式
用于变量、函数、类或命名空间,返回其名称,可应用于反射等场景。
属性/方法使用Lambda表达式
public double Distance => Math.Sqrt((X * X) + (Y * Y));
public void Print() => Console.WriteLine(Name);
该功能在C#7.0中已有进一步增强。
C# 7.0
VS2017 引入,参考:https://www.cnblogs.com/cncc/p/7698543.html
模式匹配
[1]. is表达式
[2]. case分支引入类型匹配和条件判断
元组Tuples:强烈推荐
- ValueTuple支持语义上的字段命名
- ValueTuple是值类型(Struct)
元组解构:Deconstruct 方法成员(实例或扩展)
// 实例签名
public void Deconstruct(out type variable1, out type variable2...)
// 扩展签名
public static void Deconstruct(this type instance, out type variable1, out type variable2...)
局部函数
本质是 internal 修饰的静态函数
其他重要特性
- out变量:无需预先声明,内联声明即可
- ref引用强化:允许获取某个变量(引用类型)的局部引用
- 数字分割:可以按照一定的位数用“_”进行分割
- 二进制文本:0b开头二进制串
C# 5.0-.Net新特性的更多相关文章
- php5.3到php7.0.x新特性介绍
<?php /*php5.3*/ echo '<hr>'; const MYTT = 'aaa'; #print_r(get_defined_constants()); /* 5.4 ...
- paip.php 5.0 5.3 5.4 5.5 -6.0的新特性总结与比较
paip.php 5.0 5.3 5.4 5.5 -6.0的新特性总结与比较 PHP5的新特性 2 · 对象的参照过渡是默认的(default) 3 · 引入访问属性的限制 3 · 引入访问方法的限 ...
- NodeJS 框架 Express 从 3.0升级至4.0的新特性
NodeJS 框架 Express 从 3.0升级至4.0的新特性 [原文地址:√https://scotch.io/bar-talk/expressjs-4-0-new-features-and-u ...
- 相比于python2.6,python3.0的新特性。
这篇文章主要介绍了相比于python2.6,python3.0的新特性.更详细的介绍请参见python3.0的文档. Common Stumbling Blocks 本段简单的列出容易使人出错的变动. ...
- MySQL 8.0 InnoDB新特性
MySQL 8.0 InnoDB新特性 1.数据字典全部采用InnoDB引擎存储,支持DDL原子性.crash safe,metadata管理更完善 2.快速在线加新列(腾讯互娱DBA团队贡献) 3. ...
- Atitit jquery 1.4--v1.11 v1.12 v2.0 3.0 的新特性
Atitit jquery 1.4--v1.11 v1.12 v2.0 3.0 的新特性 1.1. Jquery1.12 jQuery 2.2 和 1.12 新版本发布 - OPEN资讯.h ...
- [PHP] 从PHP 5.6.x 移植到 PHP 7.0.x新特性
从PHP 5.6.x 移植到 PHP 7.0.x 新特性: 1.标量类型声明 字符串(string), 整数 (int), 浮点数 (float), 布尔值 (bool),callable,array ...
- servlet3.0 的新特性之二注解代替了web.xml配置文件
servlet3.0 的新特性: 注解代替了 web.xml 文件 支持了对异步的处理 对上传文件的支持 1.注解代替了配置文件 1.删除了web.xml 文件 2. 在Servlet类上添加@Web ...
- C# 6.0/7.0 的新特性
转眼C#语言都已经迭代到7.0版本了,很多小伙伴都已经把C# 7.0 的新特性应用到代码中了,想想自己连6.0的新特性都还很少使用,今天特意搜集了一下6.0和7.0的一些新特性,记录一下,方便查阅. ...
- C#6.0的新特性之内插字符串
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/interpolated-strings C# 6 ...
随机推荐
- Python自动化面试必备 之 你真明白装饰器么?
Python自动化面试必备 之 你真明白装饰器么? 装饰器是程序开发中经常会用到的一个功能,用好了装饰器,开发效率如虎添翼,所以这也是Python面试中必问的问题,但对于好多小白来讲,这个功能 有点绕 ...
- window server2012服务器上如何安装nginx并启动
window环境下,Nginx安装启动的步骤如下: 把下载的window下的安装包,解压到一个不包含空格的路径下,比如:d:/Nginx 打开命令行窗口[win+R 输入cmd,然后确定]. 进入解压 ...
- 2018.07.03 POJ 2653 Pick-up sticks(简单计算几何)
Pick-up sticks Time Limit: 3000MS Memory Limit: 65536K Description Stan has n sticks of various leng ...
- 2018.09.15 bzoj1977:次小生成树 Tree(次小生成树+树剖)
传送门 一道比较综合的好题. 由于是求严格的次小生成树. 我们需要维护一条路径上的最小值和次小值. 其中最小值和次小值不能相同. 由于不喜欢倍增我选择了用树链剖分维护. 代码: #include< ...
- ThinkPHP5命令行 执行控制器下的某方法
入口文件后加一个空格就行了 1,首先cd到站点目录public下,我的入口文件是默认的index.php,然后执行以下命令,, 2,php要加入环境变量,index.php后面加空格,然后是模块,控制 ...
- hdu-1173(最短距离)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1173 思路:最短距离:就是现将x,y从小到大排序,然后去中间点就行了.(注意:本题答案不唯一) #in ...
- DevExpress gridcontrol Master-Detail绑定到对象类型
数据库:C_ProductPlan ,C_ProductPlanItemDTO定义:(实现每个计划条目-Master,对应多个ProcessInfo-Detail) [DataContract] [S ...
- linux系统编程之进程(五):exec系列函数(execl,execlp,execle,execv,execvp)使用
本节目标: exec替换进程映像 exec关联函数组(execl.execlp.execle.execv.execvp) 一,exec替换进程映像 在进程的创建上Unix采用了一个独特的方法,它将进程 ...
- sql笔试练习
转:http://www.360doc.com/content/16/0919/17/14804661_592046675.shtml 本文是在Cat Qi的参考原帖的基础之上经本人一题一题练习后编辑 ...
- css3美化滚动条样式
1.改变浏览器默认的滚动条样式 ::-webkit-scrollbar-track-piece { //滚动条凹槽的颜色,还可以设置边框属性 background-color:#f8f8f8; } : ...