什么是var? 在.Net3.5(包括.NET CF3.5)以后C#提供了一个新的变量类型var,也就是我们俗称的“推断类型”,编译器会根据上下文来判断你到底是想用什么类型的; var的使用场景? 当我们不知道一个变量是什么类型时,我们直接用var初始化就可以。比如我们不知道B是什么类型,我们可以直接使用var b=new B();我们就直接实例化了一个B。如果我们把断点加到这句话上,我们运行完毕这句话后就可以知道B到底是什么类型了。 使用var时的注意事项:

  1. 必须在定义时初始化。也就是必须是var s = 1;形式,而不能是如下形式: var s; s = 1;
  2. 一但初始化完成,就不能再给变量赋与初始化值类型不同的值了。比如,var s=1;声明后再有s="abc"是不支持的。
  3. var要求是局部变量,不能是全局变量。
  4. 使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样。

其他语言中有和var功能类似的变量吗? 我的回答是有,比如VB中的Variant,他们都能什么变量都能放入。我甚至认为VB中的Variant就是var的“母亲”。 Variant和var的不同点:var是类型安全的,Variant类型不安全。其实我觉得Variant和object更相似。 在其他那些语言中var在也是关键字? Pascal ,JavaScript,ASP,中也是关键字。 是否建议大量的使用var? 我的建议是知道明确类型的不要使用var,使用过多的VAR会导致我们代码的可读性降低。使用var时如果不知道类型就算了,当不确定是什么类型,却有个推断的时候可以加一句注释。 不建议大量的使用var变量,这样使我们的代码可读性降低,维护难度增加。

转载于:https://www.cnblogs.com/vsdot/archive/2013/03/14/3263298.html

C#中的变量类型var相关推荐

  1. JDK10的新特性:本地变量类型var

    文章目录 简介 为什么我们需要var var使用在什么地方 var不能用在什么地方 其他var的特点 总结 简介 java以面向对象的特性显著于世并得到了蓬勃的发展.在语言的发展过程中,为了让java ...

  2. scala的两种变量类型 var 和 val

    scala的两种变量类型 var 和 valscala的两种变量类型 var 和 val 在Java中,您可以这样声明新变量: String s = "hello"; int i ...

  3. js 判断变量是否有值返回bool_基础 |判断 JS 中的变量类型竟然可以如此简单

    原标题:基础 |判断 JS 中的变量类型竟然可以如此简单 嗨 这里是IMWEB 一个想为更多的前端人 享知识 助发展 觅福利 有情怀有情调的公众号 欢迎关注转发 让更多的前端技友一起学习发展~ 正文 ...

  4. C#中的变量类型(值类型、引用类型)

    C#中的变量类型: 值类型:值类型直接存储的是变量的值,变量空间在栈上分配,分配速度比较快.给变量赋值时需注意变量类型的取值范围,给变量赋不合理的值会导致编译器报错.布尔类型的变量只有两种可选择的值t ...

  5. matlab中的并行方法与理解(2):parfor中的变量类型

    转载至:http://blog.csdn.net/caozhk/article/details/38234293?utm_source=tuicool&utm_medium=referral ...

  6. javascript中对变量类型的判断

    在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined,Null,Boolean, Number和String:复杂数据类型是Object,Object中还 ...

  7. javascript中对变量类型的推断

    本文正式地址:http://www.xiabingbao.com/javascript/2015/07/04/javascript-type 在JavaScript中,有5种基本数据类型和1种复杂数据 ...

  8. js中定义变量加var和不加var的区别

    这个问题其实我在面试的时候有被问到过,当时我记得我回答的很模糊,面试官看到我好像不太清楚,又问我是不是可以不加var定义变量... 正好昨天做项目的时候想到这个问题,觉得这种细节上的问题才是拉开差距的 ...

  9. [JS]js中判断变量类型函数typeof的用法汇总[转]

    1.作用: typeof 运算符返回一个用来表示表达式的数据类型的字符串.  可能的字符串有:"number"."string"."boolean&q ...

  10. js中定义变量之②var let const的区别

    var 上一篇文章有讲过,是js定义变量的关键词. 但是在es6中,新添加了两个关键词,用于变量声明的关键词:let 和const 接下来就说一下var let 和const的区别: 首先说var 用 ...

最新文章

  1. 如何设计一个牛逼的本地缓存
  2. 如何从“查找”中排除所有“拒绝权限”消息?
  3. java 取得日期_java-如何从某个日期获取日期列表?
  4. 使用Linux LiveCD 评估系统的安全性
  5. STM32启动文件代码解析
  6. OpenTSDB 造成 Hbase 整点压力过大问题的排查和解决
  7. c primer英文版第5版_2019足坛10大巨星:梅西第2范戴克第3,C罗第5
  8. java1.8+pydev_Ubuntu 18.04.4 中使用 Eclipse+PyDev 配置 Python 开发环境
  9. ESP分区重建,解决各种引导问题
  10. Shell学习五-分割文件和提取文件名扩展名
  11. 程序中使用log4J打印信息的两种方式
  12. Windows10下解压版mysql-8.0.11安装教程
  13. pythonunittest模块_python单元测试模块unittest
  14. px4源码----位置估算(position_estimator_inav_params.h)
  15. 新浪微博开放平台提交审核时Android签名生成
  16. linux4 系统下载,syslinux下载|
  17. matlab向后误差,matlab-误差棒
  18. Sched: RT throttling activated
  19. 从零开始学习使用VUE搭建一个管理系统页面
  20. 给图片加水印--手把手教新码农如何把技术变成产品

热门文章

  1. mybatis 多数据源_Spring Boot 整合Mybatis实现多数据源配置及踩过的坑
  2. mysql基础之查询缓存、存储引擎
  3. shell应用之习题一
  4. 2019牛客多校第四场 A meeting
  5. 使用MUI框架实现JQ购物车增减
  6. THUWC2019游记
  7. sql server concat()函数
  8. 20160504课堂作业
  9. 利用反射实现工厂模式
  10. git GUI管理工具 sourcetree使用