Linq专题之var关键字
在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 = ; 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关键字是一个不错的选择。
Linq专题之var关键字的更多相关文章
- Linq专题列表
什么是Linq? Linq(Language-Integrated Query),即语言集成查询.是微软的一项新技术,能够将查询功能直接引入.NET Framework3.5 所支持的编程语言(C#, ...
- Linq专题之匿名对象
匿名对象是c#3.0的一个新的机制,使用new关键字和一个对象的初始化器,就能创建一个匿名对象.顾名思义,创建的时候这个对象是一个匿名类型的对象,没有具体的类型.说到匿名对象,那么我们前面讲过的var ...
- 什么时候用var关键字
C#关键字是伴随这.NET 3.5以后,伴随着匿名函数.LINQ而来, 由编译器帮我们推断具体的类型.总体来说,当一个变量是局部变量(不包括类级别的变量),并且在声明的时候初始化,是使用var关键字的 ...
- C#中var关键字用法分析
原文连接 本文实例分析了C#中var关键字用法.分享给大家供大家参考.具体方法如下: C#关键字是伴随着.NET 3.5以后,伴随着匿名函数.LINQ而来, 由编译器帮我们推断具体的类型.总体来说,当 ...
- [译文] 为什么你在 C# 里总是应该使用 "var" 关键字
[译文] Why You Should Always Use the 'var' Keyword in C# (为什么你总是应该在 C# 里使用 "var" 关键字) Using ...
- JavaScript var关键字、变量的状态、异常处理、命名规范等介绍
本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...
- JavaScript中var关键字的使用详解
作用 声明作用:如声明个变量. 语法 ? 1 var c = 1; 省略var 在javascript中,若省略var关键字而直接赋值,那么这个变量为全局变量,哪怕是在function里定义的. ? ...
- Linq专题之创建Linq查询表达式
本节我们主要介绍一下如何创建查询集合类型,关系数据库类型,DataSet对象类型和XML类型的数据源的Linq查询表达式. 下面在实例代码ReadyCollectionData()函数创建了准备的数据 ...
- c#中var关键字用法
Technorati 标签: C# 转载自csdn:http://blog.csdn.net/robingaoxb/article/details/6175533 var关键字是C# 3.0开始新 ...
随机推荐
- JavaScript简洁继承机制实现(不使用prototype和new)
此方法并非笔者原创,笔者只是在前辈的基础上,加以总结,得出一种简洁实用的JavaScript继承方法. 传统的JavaScript继承基于prototype原型链,并且需要使用大量的new操作,代码不 ...
- 连接oracle jdbc
我使用的是精简版的oracle. 1 导入oracle驱动包 oracle下路径 D:\oracle\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6 ...
- mac 隐藏、显示文件
方法一:打开终端 显示:defaults write com.apple.finder AppleShowAllFiles -bool true隐藏:defaults write com.apple. ...
- JS 日期格式化和解析工具
本来想模仿Java里面的SimpleDateFormat()对象的,但是感觉这样用起来不方便,所以还是直接写成单独的方法算了. 原文链接 日期格式化 使用说明 formatDate(date, fmt ...
- 【UML】类图的几种关系总结
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Compositi ...
- 每天一个linux命令(4):mkdir命令
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项] 目录... 2.命令 ...
- Leetcode 292 Nim Game 博弈论
class Solution {public: bool canWinNim(int n) { return n % 4 != 0; }};
- css之选择器篇
css能够获取到HTML结构上的元素,这个是怎么实现的了? 在我们看来这是个很神奇的事情,css可以写在页面之外,也可以写在页面内,而都不会影响到它去 获取这个元素,还有无论这个HTML结构多么复杂, ...
- 《Xenogears》(异度装甲)隐含的原型与密码
<Xenogears>(异度装甲)隐含的原型与密码 X 彩虹按:一种高次元的“生命体”,因“事故”被抓来当成“超能源”,其实那不只是“无限的能源”而已,“它”是有意志的!在我们眼里看来,这 ...
- 用GO语言开发editplus编辑器插件(附源码)
我要开发的插件功能极为简单,就是对用户选中的内容进行base64编码或解密工作. 其中所涉及的技术部分主要是GO语言程序开发和editplus插件配置的部分,首先我们来看一下GO语言代码的写法,如下: ...