ASP.NET 3.5(C#)系列2-C# 3.0语言新功能介绍

来源:互联网 发布:淘宝 直通车 编辑:程序博客网 时间:2024/05/25 18:10

C#3.0支持了许多新功能,这让一些常用语法在定义的时候更加精简方便,同时有些新功能的推出是为了配合LINQ查询技术。以下是C#3.0的8大新功能,包括:

  • 隐式类型区域变量及数组声明
  • 对象初始化设置
  • 集合初始化设置
  • 匿名类型
  • Lambda表达式
  • 扩展方法
  • 自动属性实现
  • 部分方法定义

1.隐式类型区域变量及数组声明。

C#3.0推出了一种新的var声明语法,叫做隐式声明,就像传统的Javascript以var声明变量一样。

 

var age=20//声明年龄为30,为number数值类型

var name="Mark"//声明名字为Mark,为string字符串类型

 

var类型的出现,是为了配合在声明LINQ或匿名类型语法时,并无法事先知道类型,或者知道了也没用,var所声明的变量或对象,必须跟随LINQ或匿名类型语法声明而动态变换类型。

 

1.1隐式声明变量。

   例1:

protected void Page_Load(Object sender, EventArgs e)

{

var a = 10;

var b = 5;

var c = a + b;

Response.Write(c);

}

执行的结果是15,说明正确执行。但不可在1.0或者2.0的环境中使用。


1.2隐式声明数组。

//传统声明

int[] arrayInt = new int[5] { 100, 200, 300, 400, 500 };

string[] arrayStr = new string[4] { "May", "Bob", "John", "Mark" };

 

//隐式声明

var ImplicitlyArrayInt = new[] { 100, 200, 300, 400, 500 };

var ImplicitlyArrayStr = new[] { "May", "Bob", "John", "Mark" };


   例2:

 

2.对象初始化设置。

2.1 类对象初始化

在对象初始化中,需要定义构造函数才可以进行带参数的初始化。而如果遇到多个属性,就要建立多个初始化函数(重载)。可是这样一来,反倒成了累赘。于是C#3.0就有了新的初始化机制。

比如现在定义了一个person类。

 

 那么我在初始化的时候,并不用特意创建构造函数。

 

从而省去了繁琐的创建构造函数机制,可使对象在初始化时直接定义属性。

2.2 List集合

 

 

3.自动属性的实现

倘若在属性中没有逻辑判断,那么可以用自动属性的实现来代替传统C#2.0的声明。

 

如果属性中有逻辑判断,无法用自动属性来代替。

原创粉丝点击