C# 语言历史版本和特性
C# 语言版本和对应特性,以及发布时间,.Net Framework 版本和 VS 版本
C# 4.0 和C# 5.0 熟悉点吧, VS10 ,VS12 和13 .Net Framework 4.0 和4.5
| 语言版本 | 发布时间 | .NET Framework要求 | Visual Studio版本 |
|---|---|---|---|
| C# 1.0 | 2002.1 | .NET Framework 1.0 | Visual Studio .NET 2002 |
| C# 1.1\1.2 | 2003.4 | .NET Framework 1.1 | Visual Studio .NET 2003 |
| C# 2.0 | 2005.11 | .NET Framework 2.0 | Visual Studio 2005 |
| C# 3.0 | 2007.11 | .NET Framework 2.0\3.0\3.5 | Visual Studio 2008 |
| C# 4.0 | 2010.4 | .NET Framework 4.0 | Visual Studio 2010 |
| C# 5.0 | 2012.8 | .NET Framework 4.5 | Visual Studio 2012\2013 |
| C# 6.0 | 2015.7 | .NET Framework 4.6 | Visual Studio 2015 |
| C# 7.0 | 2017.3 | .NET Framework 4.6.2 | Visual Studio 2017 |
| C# 7.1 | 2017.6 | .NET Framework | Visual Studio 2017 v15.3预览版 |
| C# 8.0 | 待发布 |
C# 1.0 特性
第1个版本,编程语言最基础的特性。
- Classes:面向对象特性,支持类类型
- Structs:结构
- Interfaces:接口
- Events:事件
- Properties:属性,类的成员,提供访问字段的灵活方法
- Delegates:委托,一种引用类型,表示对具有特定参数列表和返回类型的方法的引用
- Expressions,Statements,Operators:表达式、语句、操作符
- Attributes:特性,为程序代码添加元数据或声明性信息,运行时,通过反射可以访问特性信息
- Literals:字面值(或理解为常量值),区别常量,常量是和变量相对的
C# 2特性 (VS 2005)
- Generics:泛型
- Partial types:分部类型,可以将类、结构、接口等类型定义拆分到多个文件中
- Anonymous methods:匿名方法
- Iterators:迭代器
- Nullable types:可以为Null的类型,该类可以是其它值或者null
- Getter/setter separate accessibility:属性访问控制
- Method group conversions (delegates):方法组转换,可以将声明委托代表一组方法,隐式调用
- Co- and Contra-variance for delegates and interfaces:委托、接口的协变和逆变
- Static classes:静态类
- Delegate inference:委托推断,允许将方法名直接赋给委托变量
C# 3特性 (VS 2008)
- Implicitly typed local variables:
- Object and collection initializers:对象和集合初始化器
- Auto-Implemented properties:自动属性,自动生成属性方法,声明更简洁
- Anonymous types:匿名类型
- Extension methods:扩展方法
- Query expressions:查询表达式
- Lambda expression:Lambda表达式
- Expression trees:表达式树,以树形数据结构表示代码,是一种新数据类型
- Partial methods:部分方法
C# 4特性 (VS 2010)
- Dynamic binding:动态绑定
- Named and optional arguments:命名参数和可选参数
- Generic co- and contravariance:泛型的协变和逆变
- Embedded interop types (“NoPIA”):开启嵌入类型信息,增加引用COM组件程序的中立性
C# 5特性 (VS 2012)
- Asynchronous methods:异步方法
- Caller info attributes:调用方信息特性,调用时访问调用者的信息
C# 6特征 (VS 2015)
- Compiler-as-a-service (Roslyn)
- Import of static type members into namespace:支持仅导入类中的静态成员
- Exception filters:异常过滤器
- Await in catch/finally blocks:支持在catch/finally语句块使用await语句
- Auto property initializers:自动属性初始化
- Default values for getter-only properties:设置只读属性的默认值
- Expression-bodied members:支持以表达式为主体的成员方法和只读属性
- Null propagator (null-conditional operator, succinct null checking):Null条件操作符
- String interpolation:字符串插值,产生特定格式字符串的新方法
- nameof operator:nameof操作符,返回方法、属性、变量的名称
- Dictionary initializer:字典初始化
C# 7 特征 (Visual Studio 2017)
- Out variables:out变量直接声明,例如可以out in parameter
- Pattern matching:模式匹配,根据对象类型或者其它属性实现方法派发
- Tuples:元组
- Deconstruction:元组解析
- Discards:没有命名的变量,只是占位,后面代码不需要使用其值
- Local Functions:局部函数
- Binary Literals:二进制字面量
- Digit Separators:数字分隔符
- Ref returns and locals:引用返回值和局部变量
- Generalized async return types:async中使用泛型返回类型
- More expression-bodied members:允许构造器、解析器、属性可以使用表达式作为body
- Throw expressions:Throw可以在表达式中使用
C# 7.1 特征 (Visual Studio 2017 version 15.3)
- Async main:在main方法用async方式
- Default expressions:引入新的字面值default
- Reference assemblies:
- Inferred tuple element names:
- Pattern-matching with generics:
--------------------- 本文来自 壹零Boy 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/meplusplus/article/details/76762203?utm_source=copy
C# 语言历史版本和特性的更多相关文章
- 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结
为什么说JAVA中要慎重使用继承 这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两 ...
- C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) C#各版本新特性 C#版本和.NET版本以及VS版本的对应关系
C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) 2017年08月06日 11:53:13 阅读数:6705 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有1 ...
- C# 语言历史版本特性(C# 1.0到C# 8.0汇总)
历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECM ...
- C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新)
历史版本C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECMA ...
- [转]C# 语言历史版本特性(C# 1.0到C# 8.0汇总)
历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECM ...
- 从头来之【iOS及历史版本特性介绍】
iOS是apple公司的移动操作系统,在iPhone,iPad,iPod中应用,该名最初为Cisco的网络设备操作系统,后授权于Apple公司使用.下面介绍历史版本的特性. iOS1 最大特性是具有其 ...
- C#版本与.NET版本对应关系以及各版本的特性
C#版本 .NET版本 发布日期 特性 C# 1.0 .NET Framework 1.0 2002-02-13 委托.事件 C# 1.1 .NET Framework 1.1 2003-04-24 ...
- 你所不知道的 vscode,汇集历史版本中你可能不知道的新特性
壹 ❀ 引 vscode可以毫不夸张的说是大部分前端同学吃饭的工具(webstorm除外),随着时间的推移vscode其实也在不断推出了各种新功能新特性,但vscode并不会默认就实装这些新功能,我相 ...
- .NET Framework 历史版本(2017年)
.NET简介 这个平台相信我们都知道,不过随着技术发展,现在的.NET平台也今非昔比. .NET平台类似Java平台,是微软于2000年推出的Windows操作系统的应用软件开发框架,发展至今形成巨大 ...
随机推荐
- ABP框架系列之五十一:(Timing-定时)
Introduction While some applications target a single timezone, some others target to many different ...
- java内存模型和垃圾回收(收藏)
java内存模型: https://www.cnblogs.com/handsomeye/p/5442879.html java垃圾回收 http://www.cnblogs.com/handsome ...
- 用scp这个命令来通过ssh传输文件
小结: 1. upload files 到 ssh 服务器 localhost $ scp localfile root@172.20.34.**:~/remotepath 2. 从 ssh 服务器d ...
- Java学习笔记54(反射详解)
反射概念: java反射机制是在运行状态中,对于任意一个类,都能知道所有属性和方法 对于任意一个对象都能调用它的任意一个方法和属性,这种动态获取和调用的功能称为java的反射机制 实际作用: 已经完成 ...
- jdk-tomcat-jenkens 安装
1--安装JDK 下载JDK放到你需要的目录,解压,然后添加环境变量 2--安装tomcat 从官方网站下载tomcat的安装包,然后解压 启动tomcat , TOMCAT的默认端口是8080,要记 ...
- ASP.NET Core 2.2中的Endpoint路由
Endpoint路由 在ASP.NET Core 2.2中,新增了一种路由,叫做Endpoint(终结点)路由.本文将以往的路由系统称为传统路由. 本文通过源码的方式介绍传统路由和Endpoint路由 ...
- Hbase shell基本操作
1.启动cd <hbase_home>/bin$ ./start-hbase.sh 2.启动hbase shell # find hadoop-hbase dfs fileshadoop ...
- iOS-关于缓存【SDImageCache】Image,一直刷新UIImageView内存一直增加问题
最近做的一个项目,里面有这样一个需求,在一个页面,用一个UIImageView不停的刷新显示图片,图片可能会重复显示:图片是从服务器下载下来的data流,data转UIimage系统的方法: UIIm ...
- 批量去除文件的BOM头
<?php class KillBom{ //定义扩展名 public static $m_ext = ['txt','php','js','css']; /** * 传入一个任意文件,自动区分 ...
- Java:Cookie实现记住用户名、密码
package com.gamecenter.api.util; import java.io.IOException; import java.io.PrintWriter; import java ...