var的一些理解

时间:2022-05-10 22:41:29

var 是 variable(变量,可变物)的简写。在多种编程语言中,var 被用作定义变量的关键字,在一些操作系统中也能见到它的身影。类似object,但是效率比object高一点。

var是一个局部变量,也是一种强类型的定义变量,可以代替任何类型。在用var定义一个变量之后,就不允许在下文中修改此值,就像string类型的不可变特性一样。

关于var的使用,在定义非基本类型的时候使用var是一个很好的方法。

从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型 var。 隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。 下面的两个 i 声明在功能上是等效的:

var i = 10; // implicitly typed
int i = 10; //explicitly typed
实例:

下面的示例演示了两个查询表达式。 在第一个表达式中,允许但不需要使用 var,因为可以将查询结果的类型显式声明为IEnumerable<string>。 但是,在第二个表达式中必须使用 var,因为结果是一个匿名类型集合,而该类型的名称只有编译器本身可以访问。 请注意,在第二个示例中,foreach 迭代变量 item 也必须转换为隐式类型。


 
// Example #1: var is optional because
// the select clause specifies a string
string[] words = { "apple", "strawberry", "grape", "peach", "banana" };
var wordQuery = from word in words
where word[0] == 'g'
select word; // Because each element in the sequence is a string,
// not an anonymous type, var is optional here also.
foreach (string s in wordQuery)
{
Console.WriteLine(s);
} // Example #2: var is required because
// the select clause specifies an anonymous type
var custQuery = from cust in customers
where cust.City == "Phoenix"
select new { cust.Name, cust.Phone }; // var must be used because each item
// in the sequence is an anonymous type
foreach (var item in custQuery)
{
Console.WriteLine("Name={0}, Phone={1}", item.Name, item.Phone);
}

var的一些理解的更多相关文章

  1. for var let闭包理解

    let. var. setTimeout,一点思考. for(var i = 0; i < 10; i++){ setTimeout(function(){ console.log(i); }, ...

  2. ES6--闭包数组i的值与var的作用域理解

    var a = [];for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); };}a[6](); // 10 变 ...

  3. isset、empty、var&equals;&equals;null、is&lowbar;null、var&equals;&equals;&equals;null详细理解

    //isset: 判断变量是否被初始化 //它并不会判断变量是否为空,并且可能用来判断数组中元素是否被定义 //听说在数组用isset与array_key_exists高出4倍 $a = " ...

  4. var、let、const与JavaScript变量&sol;常量的定义

    早期的JavaScript中,声明变量只能使用var关键字定义变量,并没有定义常量的功能.通过var关键字定义的变量,其作用域只能函数级或是全局作用域,并没有块级作用域.ES6(ECMAScript ...

  5. 六天玩转javascript:javascript变量与表达式&lpar;1&rpar;

    说明 本系列属于进阶系列,语常用语法等不在本系列介绍范围之内. 在我刚开始做一个程序员并开发项目的时候,我总是喜欢使用开发语言的各种特性,每次m$发布新版C#的时候我总是会把开发者预览版下好,亲自体验 ...

  6. C&plus;&plus;学习28 重载&gt&semi;&gt&semi;和&lt&semi;&lt&semi;(输入输出运算符)

    在C++中,系统已经对左移运算符“<<”和右移运算符“>>”分别进行了重载,使其能够用于输入输出,但是输入输出的处理对象只能是系统内建的数据类型.系统重载这两个运算符是以系统类 ...

  7. JavaScript总结1

    一.JavaScript变量类型.声明.作用域 1.1 数字 number 小数和整数都叫number,以0x或0X开头的表示十六进制.当无穷大时,用Infinity表示(试试 9/0),其他非数字用 ...

  8. &lbrack;转&rsqb;js动态创建json类型

    废话少说:json是一个特有的键值对数组类型.既然是数组类型那么我们就可以这样定义 1.先定义数组 var Data = []; 2.理解键值对 对象名:值{ "id": i, & ...

  9. Js中的提升

    Js的执行并不是由上向下一行一行顺序下来的,一个例子如下: a = 2; var a ; console.log(a) 输出的是2,这区别于别的语言. 再一个例子: console.log(a); / ...

随机推荐

  1. Linux LVM硬盘管理之一:概念介绍

    一.LVM概念介绍: LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现.LVM将一个或多个硬盘的分区在逻 ...

  2. javascript中0级DOM和2级DOM事件模型浅析

    Javascript程序使用的是事件驱动的设计模式,为一个元素添加事件监听函数,当这个元素的相应事件被触发那么其添加的事件监听函数就被调用: <input type="button&q ...

  3. 用批处理编译&ast;&period;sln工程

    原文:用批处理编译*.sln工程 批处理是直接调用Microsoft Visual Studio 8\Common7\IDE\ 目录内的 devenv.exe ,它启动后就是IDE,提供的参数如下: ...

  4. 同一级目录js的引入

  5. 了解Sql

    什么是数据库: 数据库是一个以某种有组织的方式存储的数据集合,也可以理解为有组织的数据的容器.数据库相当于文件柜. 表相当于文件柜中的抽屉,表用来存储资料,一个数据库中的表必须唯一. 列,表中的一个字 ...

  6. redis 设置认证密码

    通过修改redis配置文件(redis.conf)修改验证密码.(重启生效) requirepass myRedis 客户端通过密码登录redis并进行操作 redis-cli -h 127.0.0. ...

  7. HTML、CSS&lpar;小笔记&rpar;

    这是我自己在学习html.css时觉得要记的东西太多总结一些较为常用的标签. HTML <p></p>段落标签 <hn></hn>标题标签n数值为1~6 ...

  8. 关系网络数据可视化:2&period; Python数据预处理

    将数据中导演与演员的关系整理出来,得到导演与演员的关系数据,并统计合作次数 import numpy as np import pandas as pd import matplotlib.pyplo ...

  9. topcoder srm 570 div1

    problem1 link 找到周期,每个周期的增量是相同的. problem2 link 对于分给某一个公司的有$c$个联通分量,其中$k$个联通分量只有1个节点,$c$个联通分量一共有$x$个节点 ...

  10. visio操作

    1.上下标:选中要成为上标的文字,ctrl+shift+"=" 选中要成为下标的文字,ctrl+"="