您的位置:首页 > 其它

Linq专题之var关键字

2016-04-13 13:26 246 查看
  在c#1.0,c#2.0中声明一个变量时,总是要指定变量的类型,如果不指定变量类型编译器就会报错,产生编译错误。在c#3.0中我们可以不指定变量的具体类型,而使用一个新的关键字"var"来指定变量的类型,该变量的实际类型将在其初始化表达式中推到出来。下面实例代码中,我们用var声明了3个局部变量,并获取他们的类型:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq;

namespace LinqDemo
{
class Program
{
static void Main(string[] args)
{

LingVar();
}

private static  void LingVar()
{

var numberid = 10086;

var name = "IT少年";

var arrayCity = new string[] { "BeiJing", "ShangHai" };

Console.WriteLine("--numberid的类型----");
Console.WriteLine(numberid.GetType().ToString());

Console.WriteLine("--name的类型----");
Console.WriteLine(name.GetType().ToString());

Console.WriteLine("--arrayCity的类型----");
Console.WriteLine(arrayCity.GetType().ToString());

Console.ReadKey();

}
}
}


运行代码可以看到:



我们从运行结果可以看到,最终numberid被推断出类型为System.Int32,name被推断出System.String,arrayCity推断为System.String[] 数组类型。完全是正确的。

但是在var使用过程中必须遵循3个原则:

1、var声明的变量必须包含初始化器,初始化器必须为一个表达式,且初始化器不能包含自身对象。



var numberid = numberid + 1;//编译错误



可以看到上面的编译错误很明显。

2、var声明的变量初始化值不能为null。



3、var声明变量时,不能在同一语句中初始化多个隐式类型的变量。



看来var 关键字很方便,可以简化代码,但是大量使用var声明变量会使得代码难以理解。因此我们一般在Linq表达式中难以确定变量的查询结果的类型的时候使用var关键字是一个不错的选择。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: