C# 3.0新语言特性有很多值得学习的地方,这里我们主要介绍C#隐含类型局部变量,包括介绍C#隐含类型局部变量要点等方面。
总体来说,Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基础之上,.NET2.0核心本身将不再变化(如果不了解.NET2.0的朋友,请参看MSDN或者一些经典的书籍),C# 3.0新语言特性在.NET2.0基础上进行了改进,这些改进的功能可以大大简化我们编写程序。关于C# 3.0新语言特性在博客园里的很多朋友都介绍了,我在这里简单介绍一下,记录自己所学的东西,也为后面的LINQ打下基础。
C# 3.0新语言特性和改进包括:
◆自动属性(Auto-Implemented Properties)
◆隐含类型局部变量(Local Variable Type Inference)
◆匿名类型(Anonymous Types)
◆对象与集合初始化器(Object and Collection Initializers)
◆扩展方法(Extension Methods)
◆Lambda表达式和Lambda表达式树 (Lambda Expression and Lambda Expression Trees)
C#隐含类型局部变量(Local Variable Type Inference)
C#3.0引进了var这个新关键字,在声明局部变量时可用于替代原先的类型名,即当一个变量声明标识为var类型并且该范围域中没有var名称类型存在,那么这个声明就称为隐含类型局部变量。如下(等同于//后面的显式声明):
- var i = 5;//int
- var j = 23.56;//double
- var k = "C Sharp";//string
- var x;//错误
- var y = null;//错误
- var z = { 1, 2, 3 };//错误
在调试状态下,编译器解释如下
C#隐含类型局部变量要点:
1. var为关键字,可以根据后面的初始化语句自动推断类型,这个类型为强类型。
2. 初始化语句必须为表达式,不可以为空。且编译时可以推断类型。一旦初始化之后,只可以存储这种类型。
3. var声明的仅限于局部变量,不可用于字段。亦可以用于for,foreach,using 等语句中。
4. 数组也可以作为隐含类型。
5. 初始化语句不能是一个自身的对象或者集合初始化器,但是他可以是包含一个对象或者初始化器的一个new表达式。
6. 如果局部变量声明包含了多个声明符,其类型必须相同。
【编辑推荐】