当前位置:  编程技术>.net/c#/asp.net

c#中var关键字用法浅谈

    来源: 互联网  发布时间:2014-10-24

    本文导语:  VAR 是3.5新出的一个定义变量的类型其实也就是弱化类型的定义VAR可代替任何类型编译器会根据上下文来判断你到底是想用什么类型的 至于什么情况下用到VAR   我想就是你无法确定自己将用的是什么类型就可以使用VAR     类...

VAR 是3.5新出的一个定义变量的类型
其实也就是弱化类型的定义
VAR可代替任何类型
编译器会根据上下文来判断你到底是想用什么类型的

至于什么情况下用到VAR   我想就是你无法确定自己将用的是什么类型
就可以使用VAR     类似 OBJECT
但是效率比OBJECT高点

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

var关键字是C# 3.5开始新增的特性,称为推断类型 .
可以赋予局部变量推断“类型”var 而不是显式类型。var 关键字指示编译器根据初始化语句右侧的表达式推断变量的类型。推断类型可以是内置类型、匿名类型、用户定义类型、.NET Framework 类库中定义的类型或任何表达式。
上面的资料有点抽象不好理解.
示例:
原来我们定义变量,是要这样:
数据类型 变量名 = 值;
如:
int a = 1;
string b = "2";
也就是说,"必须先明确地"指定你的变量是什么数据类型,才能给它赋值.这点很重要,要记住才好比较.
现在在C# 3.5里,有了变化,就是可以不用像上面那样定义变量了.
如:
var a =1 ;
那这个a,是什么类型呢?和原来的做法不一样了.
奥妙就在这里,IDE或编译器会根据你给a 的值:1,来"推论,断定"a是一个整数类型.
同理:
var b = "2";
因为给b的值是"2"这样一个字符串,所以,b就是string类型...


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing.text.html类html.tag的类成员方法: var定义及介绍
  • var满了,VAR/spool/mail里面的内容可以删吗?
  • HTML <var> 标签
  • crontab问题:02 05 * * * ls /var/lib/pgsql -la > /var/lib/pgsql/aaa 为什么无结果?
  • /var/tmp 目录下的临时文件可以随便删除吗?
  • 请问freeBSD中/var/spool/mqueue/目录的作用
  • touch: cannot touch '/var/lock/subsys/sshd' : 只读文件系统[确定]
  • /var/named/chroot 文件有什么用阿!
  • var/lib/dpkg/status文件是如何产生的
  • gentoo的/var/log/messages文件在哪里阿?
  • 找不到/var/log/vsftpd.log?
  • var/log文件夹老是被删除,请问怎么查原因
  • 我的/var/log/message 是空的,可能是被攻击吗?怎么可以恢复记录日志?
  • 请教关于打开/var/log/messages文件的问题
  • 如何修改var的分区,急俄!
  • ···请教/var/mail下的root是什么文件???
  • 我的gentoo的一个小问题,求救./var/lib/init.d/depcache
  • 如何改变把/var的文件系统从原来的ext3改成tmpfs?
  • 光盘引导启动后如何查看/var/adm/message
  • 为什么var/log下面没有messages、、、???
  • 我怎么在LINUX下面把A盘里的文件栲到/VAR下面


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3