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. C++ STL之pair常用指令

    只记载本人在ACM中常用的函数. pair<first, second>,将两个数据组合成一个数据.在其他stl(如map),函数需要传回两个值时可能会用到. 1.初始化 #include ...

  2. MVC路由机制

      按照传统,在很多Web框架中(如经典的ASP.JSP.PHP.ASP.NET等之类的框架),URL代表的是磁盘上的物理文件.例如,当看到请求http://example.com/albums/li ...

  3. swift 深入理解Swift的闭包

    我们可用swift的闭包来定义变量的值. 先来一个简单的例子大家先感受感受. 定义一个字符串的变量的方法: 直接赋值 var str="JobDeer" 还可以用闭包的方式定义: ...

  4. cocos2d-x 3.6版连连看载入资源

    网上找了一个梦幻连连看的资源.大家能够百度一下.然后整理一下加到project里面去.包含声音和图片文件.后面解释怎样整理能够方便管理. 我不推荐在代码里面直接引用资源文件名称,我称之为硬编码. 做i ...

  5. 斐波那契数列(fabnacci)java实现

    斐波那契数列定义:From Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Fibonacci_number In math ...

  6. [转] Makefile的条件执行

    条件语句可以根据一个变量的值来控制make执行或者忽略Makefile的特定部分.条件语句可以是两个不同变量.或者变量和常量值的比较.要注意的是:条件语句只能用于控制make实际执行的makefile ...

  7. sass笔记-1|Sass是如何帮你又快又好地搞定CSS的

    Sass学习笔记持续整理中,开篇不讲怎么安装,sass是什么,这些搜索引擎会告诉你,我们从sass的作用开始讲起,知道sass用来干什么,有什么作用,我们才能相信用sass的好处,并且时时刻刻想着sa ...

  8. web页面打印

    在使用的两种方式打印: 第一种:js如下 function doPrint() { allhtml = window.document.body.innerHTML; starstr = " ...

  9. 关于 submit 按钮的 onclick 验证事件,第一次验证失败,第二次 submit 按钮失效的原因解析

    今天在做一个生成订单的简单验证页面 主要功能:实现点击提交按钮后,先在页面上用JavaScript验证信息是否输入完全,不完全不允许提交,待输入完全后,才可以提交 页面:如下页面,可以看到,当文本框有 ...

  10. (转)Web Service入门简介(一个简单的WebService示例)

    Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...