码迷,mamicode.com
首页 > 编程语言 > 详细

C# 3.0语言特性

时间:2015-05-17 21:42:27      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

关键字:隐式类型变量var、扩展方法(extension method)、lambda表达式、自动属性、匿名类型

一、隐式类型

  C#是强类型语言,意味着我们在声明变量时必须指定变量的具体类型,但是var可以代替正式的数据类型名(如int, bool, string),编译器会根据用于初始化局部变量的初始值推断出变量的数据类型;我们可以对基类库中的所有类型使用隐式类型,包括数组、泛型、自定义类型。

  使用限制:

    1、只能应用与方法或者属性内局部变量的声明,不能使用var来定义返回值、参数的类型或类型的数据成员;

    2、使用var进行声明的局部变量必须赋初始值,并且不能以null作为初始值。

  强类型数据:隐式类型初始化后编译器就已经推断出了确切类型,所以他是强类型。

  作用:可以动态根据查询本身的格式来创建结果集,这样我们就不需要显示定义查询可能返回的类型

 

二、自动属性

  因为.NET基类库总是使用类型属性而不是传统的访问和修改方法,所以.NET语言推荐使用类型属性来封装私有数据字段,而不是 使用GetXXX()和SetXXX()方法。 

  在底层,C#属性会被映射到前缀get_和set_的方法中,即如果定义了Name属性,C#会自动生成get_Name()和set_Name()方法。

  在定义自动属性时候,必须同时提供Get和Set关键字。

 

三、匿名类型

  类可以表达一个给定的编程实体,我们通常创建一个C#类,为该类提供必需的一系列属性、方法和事件等,以供重用;而有时候可能需要定义类来封装一些相关数据,而不需要任何相关联的方法、事件,或者该类不需要在项目间重用。

  C# 3.0提供的匿名类型,使用新的关键字var和之前介绍的对象初始化语法,如:var worker = new { FirstName = "Vincent", LastName = "Ke", Level = 2 };C#编译器会在编译时自动生成名称唯一的类。因为这个类的名字在C#中是不可见的,所以必需使用var关键字来使用隐式类型化。

  匿名类型内部表示:

    匿名类型都自动继承自System.Object,可以调用ToString()、GetHashCode()、Equals()、GetType()方法

  

C# 3.0语言特性

标签:

原文地址:http://www.cnblogs.com/xionghot/p/4510512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!