C#语言的新特性及相关信息
.ENT版本
NET 2.0 :CLR, WinForms ,Wed Services,ASP.NET
NET 3.0 :WCF,WF,WPF,CardSpace
NET 3.5 :LINQ ,AJAX,REST
.NET版本及开发工具和语言
| 2002 | 2003 | 2005 | Studio | 2008 | |
| 开发工具 | Visual Studio 2002 | Visual Studio 2003 | Visual Studio 2005 | Visual Studio 2005+扩展 | Visual Studio 2008 |
| 语言 | C#1.0 VB.NET(V7.0) | C#1.1 VB.NET(V7.1) | C#2.0 VB.NET(V8.0) | C#1.0 VB.NET(V7.0) | C#1.0 VB.NET(V7.0) |
| 框架 | .NETFX v1.0 | .NETFX v1.1 | .NETFX v2.0 | .NETFX v3.0 | .NETFX v3.5 |
| CLR | CLR v1.0 | CLR v1.1 | CLR v2.0 | CLR v2.0 | CLR v2.0 |
C#新特性
自动属性个属性访问器的保护级别
class Test1
{
Private int_id;
public int_id
{
get{ return_id;}
set{ _id=value;}
}
//访问器带有保护级别的自动属性
public int ID{get;set;}
}
可空类型
值类型变量为"null",C#语言以前只有引用类型才可以赋值为"null"
System.Nullble<T>结构体成员
名称 说明
构造函数
Nullable<T> 初始化Nullable<T>结构体并为其制定制方法
Equals 比较跟传入对象是否相等
GetHashCode 返回当前对象值的Hash码
GetType 获取当前实例类型
GetValueOrDefault 获取对象的值或默认值
ToString 以文本符串的形式返回当前对象的值
运算符
Explicit 返回Nullable<T>的值
Implicit 创建NUllable<T>对象,然后给其赋值
属性
HasValue 当前对象是否有值
Vlaue 当前对象的值
泛型
优点:线程安全,不用类型转化.执行速度快.
缺点:H函数或类的通用化问题.
对象和集合初始化器
对象初始化器由一些成员初始化去组成,包含在花括号中间,用逗号分隔.
集合初始化器实现了泛型System.Collections.Generic.ICollections<T>接口,
并且指定了T的类型,那么就可以使用集合初始化器来初始化.
匿名函数
匿名类型一般出现在LINQ的select子句中,用来投影筛选出的数据.
匿名类型创建属性只读的,匿名类型的名称和属性数据类型有编译器随机制定或自动推断.
匿名类型不允许包含除了属性之外成员.
多个匿名函数具有相同的顺序,相同数量个种类的属性成员,编译器会将这些匿名类型视为相同类型,并且他们共享编译器生成的类型信息.
扩展方法
扩展方法是一种建立在非泛型,非嵌套的静态类中特殊的静态方法.
不用继承对象增加方法
在继承关系链中,我们通常继承一个对象之后子类进行拓展方法.
在某此情况下,父类允许继承通过拓展方法来实现,非继承方法的添加.
匿名方法和Lamdba表达式
匿名函数是一种特殊的代理,它把代码体直接关联在代理类型上,而不是常见的关联方法名.
Lamdba表达式让函数执行更加简单.
使用var=>接受Lamdba函数的返回值
Lamdba表达式=>为了匿名函数的更好调用.
C#语言的新特性及相关信息的更多相关文章
- Vue3的新特性及相关的Composition API使用
首先 创建项目 Vue3 Vue3 相较于Vue2 的6大亮点: 1 性能快. 2 按需编译 体积更小 3 提供了组合API 类似于react 的React Hooks 4 更好的Ts支持 5 暴露了 ...
- Java8新特性-日期相关类操作
JDK8以前使用SImpleDateFormate类格式化日期,因为在SImple DateFormate中存在Calendar实例引用,而在caleander中得establish中存在clear( ...
- Java 8新特性终极指南
目录结构 介绍 Java语言的新特性 2.1 Lambdas表达式与Functional接口 2.2 接口的默认与静态方法 2.3 方法引用 2.4 重复注解 2.5 更好的类型推测机制 2.6 扩展 ...
- JAVA8 十大新特性详解
前言: Java8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.在Java Code Geeks上已经有很多介绍Java 8新特性的文章, 例如Playing with Java ...
- java8新特性全面解析
在Java Code Geeks上有大量的关于Java 8 的教程了,像玩转Java 8--lambda与并发,Java 8 Date Time API 教程: LocalDateTime和在Java ...
- java8 新特性
[转载]:http://www.importnew.com/11908.html 本文由 ImportNew - 刘 家财 翻译自 javacodegeeks.欢迎加入翻译小组.转载请见文末要求. 编 ...
- iOS开发——新特性OC篇&Objective新特性
Objective新特性 Overview 自 WWDC 2015 推出和开源 Swift 2.0 后,大家对 Swift 的热情又一次高涨起来,在羡慕创业公司的朋友们大谈 Swift 新特性的同时, ...
- [转] Java 8的新特性
简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性.在本文中我们将学习这些新特性,并用实际的例子 ...
- Java 8 新特性终极版
声明:本文翻译自Java 8 Features Tutorial – The ULTIMATE Guide,翻译过程中发现并发编程网已经有同学翻译过了:Java 8 特性 – 终极手册,我还是坚持自己 ...
随机推荐
- CH Round #52 - Thinking Bear #1 (NOIP模拟赛)
A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...
- AndroidStudio SVN检出
版本管理是每个项目的必经之路,很多的ADT都会集成版本管理插件.AS也同样可以集成GITHUB和SVN插件.github对项目有一定的限制,而SVN就比较开放了,所以我们在用AS开发的时候一般用SVN ...
- 数据结构(Splay平衡树):HDU 1890 Robotic Sort
Robotic Sort Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- Jenkins 二:邮件配置
默认邮件的配置 假设管理员邮箱是 user1@domain1.com,密码是pw1. 1. 打开“系统管理”-> “系统设置”. 2. 找到“Jenkins Location”-> “系统 ...
- E - 食物链 poj1182
题目告诉有 3 种动物,互相吃与被吃,现在告诉你 m 句话,其中有真有假,叫你判断假的个数 ( 如果前面没有与当前话冲突的,即认为其为真话 ).每句话开始都有三个数 D A B,当D = ...
- Linux下多任务间通信和同步-概述
Linux下多任务间通信和同步-概述 嵌入式开发交流群280352802,欢迎加入! 在前面,我们学习了两种多任务的实现手段:进程和线程.由于进程是工作在独立的内存空间中,不同的进程间不能直接访问到对 ...
- python-类和对象(属性、方法)的动态绑定
动态绑定 # coding=utf-8 ''' 当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性 ''' from types im ...
- Miller-Rabin质数测试
Miller-Rabin质数测试 本文主要讨论使用Miller-Rabin算法编写素数的判定算法,题目来源于hihocoder. 题目 题目要求 时间限制:10000ms 单点时限:1000ms 内存 ...
- [ES6] Array.findIndex()
In es5, you can use indexOf to get the index of one item in an array. In es6, you can use findIndex( ...
- C++通过WIN32 API获取逻辑磁盘详细信息
众所周知,在微软的操作系统下编写应用程序,最主要的还是通过windows所提供的api函数来实现各种操作的,这些函数通常是可以直接使用的,只要包含windows.h这个头文件. 今天我们主要介绍的 ...