C#各个版本特性

C#2.0
泛型:泛型可以帮助我们实现代码的重用,同时泛型的另一个好处——高性能,并且泛型类型也保证了类型安全
部分类型:Partial是局部类型的意思。允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。
匿名方法:匿名方法是在初始化委托时内联声明的方法。
迭代器:一个类型要能够使用foreach关键字来对其进行遍历必须实现IEnumerable或IEnumerable<T>接口。
可空类型:System.Nullable<T>,语法糖(?)。
Getter / setter单独可访问性
委托、接口的协变和逆变:委托是特殊的类,定义了方法的类型,可以将方法当做另一个方法的参数来进行传递,使得程序更容易扩展。
静态类:静态类的本质,是一个抽象的密封类,所以不能被继承,也不能被实例化,仅包含静态成员,如果一个类下面的所有成员,都需要被共享,那么可以把这个类定义为静态类。

C#3.0
隐式类型局部变量
对象和收集初始化器
自动实现的属性
匿名类型
扩展方法
查询表达式 linq
Lambda 表达式:创建 Lambda 表达式,需要在 Lambda 运算符 => 左侧指定输入参数(如果有),然后在另一侧输入表达式或语句块。
表达树:Expression
部分方法:在部分类中定义部分方法,部分方法可以是静态的,但它们总是私有的,且不能有返回值,它们使用的任何参数都不能是out参数

C#4.0
动态绑定:Dynamic
命名和可选参数
泛型的协变和逆变:out指定该参数是协变,in指定该参数是逆变。
嵌入式互操作类型:是指一系列Com组件的程序集,是公共运行库中库文件,类似于编译好的类,接口。设定为true,实际上就是不引入互操作集(编译时候放弃Com程序集),仅编译用户代码的程序集。而设定为false的话,实际就是需要从互操作程序集中获取 COM 类型的类型信息

C#5.0
异步方法 await/async
调用方信息:CallerMemberName、CallerFilePath和CallerLineNumber。在编译器的配合下,分别可以获取到调用函数(准确讲应该是成员)名称,调用文件及调用行号。

C#6.0
自动属性初始化器
只读属性的默认值
空条件运算符,简洁检查
字符串插值
表达式方法体:例如 public int Skip => (PageIndex - 1) * PageSize;
public int Skip() => (PageIndex - 1) * PageSize;。
将静态类型成员导入命名空间
检查方法参数nameof表达式,在WPF中的ViewModel层的属性变化通知时常用。
带索引的对象初始化器
catch和finally 中使用await
内联out参数
无参数的结构体构造函数

C#7.0
out变量
元组:注意左右两边同时指定字段名称,会使用左边的字段名称覆盖右边的字段名称
解构
模式匹配:一、 is 表达式(条件控制语句(obj is type variable)),例如 (item is string str && int.TryParse(str, out var result)) // is expressions 和 out variables 结合使用;二、switch语句更新(case type variable2 when predicate),例如case string str when int.TryParse(str, out var result): // 类型模式匹配 + 条件表达式。
局部引用和引用返回:ref 关键字得到了加强,它不仅可以获取值类型的引用而且还可以获取某个变量(引用类型)的局部引用(static ref int GetLocalRef(int[,] arr, Func<int, bool> func);ref var num = ref GetLocalRef(arr, c => c == 20);num = 600;)。
局部函数
更多的表达式体成员
Throw 表达式
扩展异步返回类型:以前异步的返回类型必须是:Task、Task<T>、void,现在 C# 7 中新增了一种类型:ValueTask<T>。
数字文本语法的改进:二进制文字(以0b开头,字母不区分大小写)、数字分隔符(三个地方不能写:开头,结尾,小数点前后)。

C#7.1
default字面量
Async Main

C#7.2
条件Ref:ref var r = ref (arr != null ? ref arr[0]: ref otherArr[0]);
起始分隔符:可以用在0x0b之后
非尾部命名参数

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,623评论 18 399
  • 问你们一个问题?看看有木有同感~ 有木有想过这个问题——为什么只要有人一打哈欠,身边的人就会跟着打,然后就开始不停...
    爱叨叨的嘎嘎阅读 469评论 0 2
  • 成年以后,年味之于我不是特定的日子和食物组成。那份年味,是特定的人。即便一桌满汉全席,如若少了那特定的人,也只是再...
    老豆儿就酒阅读 236评论 0 0
  • 现代人得灰指甲的人挺多的,治愈也挺难,而且还有传染性,我自己也有2个,但开始并不知道这就是灰指甲,以为指甲就是长这...
    K德宏阅读 890评论 0 1