C#隐含类型局部变量浅析

开发 后端
这里介绍C#隐含类型局部变量,C#3.0引进了var这个新关键字,在声明局部变量时可用于替代原先的类型名,即当一个变量声明标识为var类型并且该范围域中没有var名称类型存在,那么这个声明就称为隐含类型局部变量。

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名称类型存在,那么这个声明就称为隐含类型局部变量。如下(等同于//后面的显式声明):

  1. var i = 5;//int  
  2. var j = 23.56;//double  
  3. var k = "C Sharp";//string  
  4. var x;//错误  
  5. var y = null;//错误  
  6. var z = { 1, 2, 3 };//错误 

在调试状态下,编译器解释如下

隐含类型局部变量调试

C#隐含类型局部变量要点:

1. var为关键字,可以根据后面的初始化语句自动推断类型,这个类型为强类型。

2. 初始化语句必须为表达式,不可以为空。且编译时可以推断类型。一旦初始化之后,只可以存储这种类型。

3. var声明的仅限于局部变量,不可用于字段。亦可以用于for,foreach,using 等语句中。

4. 数组也可以作为隐含类型。

5. 初始化语句不能是一个自身的对象或者集合初始化器,但是他可以是包含一个对象或者初始化器的一个new表达式。

6. 如果局部变量声明包含了多个声明符,其类型必须相同。

【编辑推荐】

  1. C# const常量详细介绍
  2. C# Lambda表达式学习笔记
  3. C#隐式类型局部变量经验总结
  4. 调用C# Thread.Start()方法
  5. C# CheckStatus()方法
责任编辑:佚名 来源: chinaitlab
相关推荐

2009-08-26 16:37:07

C#迭代器局部变量

2009-08-26 15:39:08

C#隐式类型局部变量

2009-09-17 13:05:38

Linq局部变量类型

2009-09-11 10:07:05

Linq隐式类型化局部

2009-08-18 17:17:05

C#局部类型

2009-08-18 12:52:33

C#枚举类型

2009-08-06 10:14:15

C#引用类型数组

2009-08-18 10:35:46

C#枚举类型

2009-07-31 18:39:31

C#中foreach引

2010-01-20 10:27:07

VB.NET隐式类型局

2010-01-21 10:57:12

VB.NET局部变量类

2009-08-18 13:00:59

C#枚举类型

2009-08-24 14:20:13

C# 强制类型转换

2018-05-14 09:15:24

Python变量函数

2009-08-26 10:34:15

C#类型C#变量

2009-08-24 14:51:25

C# 泛型泛型类型

2009-08-18 09:37:14

C#枚举类型

2009-10-12 14:13:00

VB.NET使用局部变

2009-12-15 10:48:54

Ruby局部变量

2020-11-11 21:26:48

函数变量
点赞
收藏

51CTO技术栈公众号