文章教程

3.1局部变量的隐式声明

8/31/2020 9:37:14 PM 人评论 次浏览

3.1 局部变量的隐式声明

在C# 4.0中可以使用局部变量的隐式声明,其实就是不用命名变量,在赋值时编译器自动识别变量类型,类似于JavaScript中的变量类型Var。

3.1.1 如何声明隐式局部变量

在C#中隐式变量声明使用Var类型。Var类型变量没有具体类型,只在赋值和具体程序中使用时,系统会自动转换成一个类型,如图3-1所示。

alt

图3-1 隐式局部变量的声明和使用

系统将代码中使用到的隐式类型自动转换为String类型,运行结果如图3-2所示。

alt

图3-2 隐式变量的使用效果

3.1.2 在foreach循环中使用隐式声明

在foreach循环中使用隐式声明是非常迅速快捷的方式,因为不用分析具体数据类型就可直接使用,代码以下。

alt

执行结果如图3-3所示。

alt

图3-3 执行结果显示

3.1.3 隐式类型变量的限制

隐式变量只限于用在局部变量中,不能用于类变量、返回值和参数中,举例如下。

alt

如果这样声明就会产生一个编译错误,信息如下。

未能找到类型或命名空间名称“var”(是否缺少using指令或程序集引用?)

还有其他限制,如

alt var vtemp;

alt var vtemp1 = null;

alt var vtemp2 = vtemp2 + 1;

alt var vtemp3 = 9, vtemp4 = 8;

这样的声明同样会产生错误,如下所示。

alt 隐式类型的局部变量必须已初始化。

alt 无法将“<null>”赋予隐式类型的局部变量。

alt 局部变量“vtemp2”在声明前无法使用。

alt 隐式类型的局部变量不能有多个声明符。

上面四个错误说明在编译器中使用隐式类型还有很多不便,希望在以后的编译器中会得到改善。

3.1.4 隐式类型的局部数组

隐式类型局部数组的使用方式同隐式变量。数组的使用与C#语法相同,具体使用如下。

alt

在数组的使用中,系统判定隐式类型是依据为它初始化时赋值给它的数据类型。

3.1.5 隐式类型变量的作用

隐式类型的使用便于使用foreach循环和Linq对象。前面已经演示了foreach,下面演示Linq隐式变量的使用。

alt

执行结果如图3-4所示。

alt

图3-4 使用LINQ的隐式类型查询

其实LINQ在使用时不只限于数据库的操作,还有很多操作可以完成,如数组、xml和list等。

教程类别