refer :

http://www.cnblogs.com/yinrq/p/5600530.html

http://www.cnblogs.com/wolf-sun/p/5168217.html

http://www.cnblogs.com/wolf-sun/p/5172914.html

使用 vs2015 .net 4.6.1

1. nameof

public class Demo
{
public string name { get; set; }
}
string value = nameof(Demo.name); //"name"

好处 : 类似 enum 的作用, 当要批量替换属性名字时, 有智能提示, 这样就不怕漏换了.

2.null 处理

public class Demo
{
public string name { get; set; }
   public int age { get; set; }
public void doSomeThing()
{ }
} Demo demo = null;
//before
if (demo != null) demo.doSomeThing();
//after
demo?.doSomeThing(); //before
string valuex = (demo != null) ? demo.name : "defaultValue";
//after
string valuey = demo?.name ?? "defaultValue";
// for int
int? age = demo?.age;
int age = (demo?age).GetValueOrDefault();

是 null 的话后面就不会继续跑, 会直接返回 null 值,

如果是 int 也会变成 nullable 哦,看上面的例子.

3. using static

namespace Project
{
public class Demo
{
public static void method()
{ }
}
} using static Project.Demo; //before
Demo.method();
//after
method();

好处 : 不需要写 ClassName

4. string interpolation

string value1 = "kelly";
string value2 = "penny";
//before
string value4 = string.Format("i love {0}, i have {1}", value1, value2);
//after
string value3 = $"i love {value1}, i hate {value2}"; //i love kelly, i hate penny

好处 : 早就好这样了, string.Format 和 "+ +" 一样乱丫, 不过还是 js 的 `` 更好

5. lambda in class method and properties

public class Demo
{
//before
public string getString1(string value)
{
return $"i love {value}";
}
//after
public string getString2(string value) => $"i love {value}"; //before
public string fullname1 {
get {
return getString1("kelly");
}
}
//after
public string fullname => getString1("kelly"); //this feature only support get
}

好处 : 好看一些吧

6. default value in class properties

//before
public class Demo1
{
public Demo1()
{
this.name = "value";
}
public string name { get; set; }
}
//after
public class Demo2
{
public string name { get; set; } = "value";
}

好处 : 美

7. 字典

//before
Dictionary<string, string> data1 = new Dictionary<string, string>
{
{ "key1" , "value" },
{ "key2" , "value" }
};
//after
Dictionary<string, string> data2 = new Dictionary<string, string>
{
["key1"] = "value",
["key2"] = "value",
};

好处 : 比较贴近正常的赋值 data2["ket1"] = "value";

c# 6.0 学习笔记的更多相关文章

  1. DirectX 总结和DirectX 9.0 学习笔记

    转自:http://www.cnblogs.com/graphics/archive/2009/11/25/1583682.html DirectX 总结 DDS DirectXDraw Surfac ...

  2. 一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移

    不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.superviso ...

  3. vue2.0学习笔记之路由(二)路由嵌套+动画

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. vue2.0学习笔记之路由(二)路由嵌套

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. hdcms v5.7.0学习笔记

    hdcms v5.7.0学习笔记 https://note.youdao.com/ynoteshare1/index.html?id=c404d63ac910eb15a440452f73d6a6db& ...

  6. dhtmlxgrid v3.0学习笔记

    dhtmlxgrid v3.0学习笔记 分类: dhtmlx JavaScript2012-01-31 15:41 1744人阅读 评论(0) 收藏 举报 stylesheetdatecalendar ...

  7. OAuth 2.0学习笔记

    文章目录 OAuth的作用就是让"客户端"安全可控地获取"用户"的授权,与"服务商提供商"进行互动. OAuth在"客户端&quo ...

  8. 一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建

    作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装C ...

  9. RxJava2.0学习笔记2 2018年7月3日 周二

    摘记: 1.map -- 转换  有些服务端的接口设计,会在返回的数据外层包裹一些额外信息,这些信息对于调试很有用,但本地显示是用不到的.使用 map() 可以把外层的格式剥掉,只留下本地会用到的核心 ...

  10. thinkphp5.0学习笔记

    2019-11-11学习笔记 安装TP5.0 a)源代码包下载 在thinkphp官网下载(www.thinkphp.cn)下载 完整版本的TP5.0 b) composer 安装 切换到网站的根目录 ...

随机推荐

  1. libvirt 命令行交互工具之virsh

    libvirt是当前主流VM最低层库.IBM PowerVM也不例外,libvirt是深入玩虚拟化必须玩转的东西; 简单测试玩玩libvirt 的virsh命令行交互工具, 你我都知libvirt大体 ...

  2. bda_百度百科

    bda_百度百科 bda

  3. SWIFT国际资金清算系统

    SWIFT又称:“环球同业银行金融电讯协会”,是国际银行同业间的国际合作组织,成立于一九七三年,目前全球大多数国家大多数银行已使用SWIFT系统.SWIFT的使用,使银行的结算提供了安全.可靠.快捷. ...

  4. js获取当前页面的url中id

    function UrlSearch() { var name, value; var str = location.href; //获取到整个地址 var num = str.indexOf(&qu ...

  5. LSPCI具体解释分析

    一.PCI简单介绍     PCI是一种外设总线规范.我们先来看一下什么是总线:总线是一种传输信号的路径或信道.典型情况是,总线是连接于一个或多个导体的电气连线,总 线上连接的全部设备可在同一时间收到 ...

  6. ApiDemos--&gt;Views-lists-slow adapter学习

    今天来依照apidemos提供的方法来实现slow loading的效果. 简单说下实现方法: 实现ListView.OnScrollListener ,监听到手势滑动的情况,当处于滚动状态时,将新显 ...

  7. Windows7 64位系统搭建Cocos2d-x 2.2.1最新版以及Android交叉编译环境(具体教程)

    原文地址:http://blog.csdn.net/sttyytw/article/details/17005263 声明:本教程在參考了下面博文,并经过自己的摸索后实际操作得出,本教程系本人原创,因 ...

  8. android使用微软EWS发送邮件

    通常我们在android使用javamail发送邮件,可是很多时候我们需要连接Exchange服务(很多公司内部邮件服务器采用,并且未开通smtp服务)来发送邮件,这时候我们就要用到微软的 ews-j ...

  9. 【转】非常详细的docker学习笔记

    一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 -- Docke ...

  10. apache的域名添加虚拟端口号

    1. vi /etc/httpd/conf/httpd.conf 2. 搜索Listen 80,在后面添加Listen 8080 3. 重启apache服务器./usr/sbin/apachectl ...