.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表达式=>为了匿名函数的更好调用.