C#中的隐式类型var——详细示例解析

从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型var。隐式类型可以替代任何类型,它的具体类型由编译器根据上下文推断而出。

下面就让我来总结下隐式类型的一些特点:

1.var类型会被编译器根据初始值的类型推断出具体的类型
eg:

 ;;;, Name = "Kobe" };//正确
 //匿名类中的属性一定要赋初始值,否则报错
 var person = new { Age, Name };//报错:当前上下文中不存在"Age" 当前上下文中不存在"Name"

使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样,因为还没运行时编译器就已经根据上下文推断出是什么类型了,所以要比object效率要高。善用隐式类型,在难以确定类型的情况下如将用于存储匿名类型或匿名类型集合时使用会有奇效,在新语法中的使用颇多,是一把编程利器。

更多相关文章
  • 2.1 隐式类型的局部变量用var 关键字来声明局部变量,下面一段演示代码:staticvoid Main(string[] args)         {              // 用var声明局部变量        var stringvariable = "learning h ...
  • Linq之隐式类型、自动属性、初始化器、匿名类
    目录 写在前面 系列文章 隐式类型 自动属性 初始化器 匿名类 总结 写在前面 上篇文章是本系列的小插曲,也是在项目中遇到,觉得有必要总结一下,就顺手写在了博客中,也希望能帮到一些朋友.本文将继续介绍linq系列的基础知识,隐式类型,自动属性,初始化器,匿名类的相关概念,这些内容也许与linq相关也 ...
  • C++,否则跳过初始化步骤.这个标志位实际上就是一个隐式的计数器,虽然它只是一个0-1计数.知道了编译器的这个"内幕",你可以用下面的代码轻易的绕过初始化检查,让函数中的static变量在每次被调用时都被初始化(代码有些BT,不适者勿看).void Test(int initVa ...
  • 在之前学习AngularJS的过程中,都是用到了显式依赖注入,比如:依赖注入$scope.这么写有个弊端,在发布的时候,往往要压缩JavaScript代码,压缩时,会替换掉变量名.比如$scope会替换成长度更小的a,但是$scope这个名字又是不能改动的,否则会无法识别.所以这种隐式的依赖注入方法 ...
  • MySQL隐式转化整理 前几天在微博上看到一篇文章:价值百万的 MySQL 的隐式类型转换感觉写的很不错,再加上自己之前也对MySQL的隐式转化这边并不是很清楚,所以就顺势整理了一下.希望对大家有所帮助. 当我们对不同类型的值进行比较的时候,为了使得这些数值「可比较」(也可以称为类型的兼容性),My ...
  • object App { implicit def toM2(m1:M1): M2 ={ println("m1 to m2") new M2() } class M1 { def method1(): Unit ={ println("invoke method 1& ...
  • JSP中的EL隐式对象
    一 介绍       JSP表达式语言(Expression Language),简称EL,为存取变量.表达式运算和读取内置对象等内容提供了新的操作方式.目的:为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法 ...
一周排行
  • /****操作系统:WIN-XP*后台程序:Java*前端脚本:JavaScript/ExtJs/Html* *做过的尝试:用form的submit方式提交,在后台request.getInputStream()取到 ...
  • SharePoint2013图文开发系列之网站栏
    网站栏的本质,就是一个xml的描述文件,所以创建过程,基本就是通过Feature部署一个X ...
  • 本文已连接至  点击
  • 互联网的锤子三
    对微博的讨论思路仍将从信息的获取和发布两个方面结合微博的特征来讨论,这将是我们的思维定势. ...
  • 磁盘配额1)挂载分区时,加载userquota,grpquota参数[root@ninglianjie_app_1 ~]# mount -o usrquota,grpquota /dev/sdd1 /data1[ro ...
  •   一:简要介绍数据在现今企业中占有重要的地位,数据存储的安全性有而是人们使用计算机要注意的重要问题之一.通常情况下人们在服务器端采用各种冗余磁盘阵列RAID技术来保护数据,中高档的服务器一般都提供了昂贵的硬件RAI ...
  • 信息系统项目管理师考试以项目管理9大领域为核心知识,考点内容多且杂,大家在备考的时候要做好笔记.下面希赛软考学院小编为大家整理了些项目管理师考试有关项目生命期与组织需要记住的重点内容.1.从项目生命周期的一个阶段,转 ...
  • 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4776 参见大牛题解http://blog.csdn.net/dslovemz/article/details/1529 ...
  • SSH之不用输密码而直接连接
    工作时常用到ssh或scp等进行主机之间相互连接和传输文件.然而每次都需要输入密码实在不便 ...
  • AndroidJNI入门第二篇——Java参数类型与本地参数类型对照
    前面一篇通过简单的例子介绍了android中JNI的使用.这一篇从基础上了解一些Java参 ...