C#3.0新特性(一)-隐式类型的局部变量和数组

山高月大 

2009-02-09

写在前边:

      用了aspdotnet一段时间了,对csharp还知之甚少,今天就从csharp的基本语法开始学习。内容多为前辈同仁们blog中已写过,加上自己得理解,只求能加深自己的印象,若能在cnblog中凑个数,那真是受宠若惊!

 

一.C# 3.0语言主要增强点

• 隐含类型局部变量

• 扩展方法

• 对象与集合初始化器

• 匿名类型

• Lambda表达式

• 查询表达式( LINQ )

• 表达式树

 

二.隐式类型的局部变量和数组

先来看看例句:

 
   
   
 

 

注:"var"这个关键字是不是很眼熟,javascript中经常用到(互相学习现在比较常见了),当然C#中var和javascript的var差别还是比较大。

1.var只能作为局部变量使用;

就是说var只能定义在一个方法里面,或者foreach,for,using等语句里面:

var关键字可以在以下四种场合中使用:

•局部变量:

 
  

•在for初始化语句中:

 
   
  

•在foreach初始化语句中下边将有例子;

•在using语句中:

 
   
  

2.var可以申明任何类型变量,可以根据后面的初始化语句自动推断类型;

这个和object有点像,但var是强类型,根据初始化表达式来定义变量的类型;

 
  

编译器自动推断用var定义的变量的类型,即是,在vs2008中,将鼠标移动到var i=0; 这句上的var关键字上,vs2008会智能提示为struct System.Int32,而且,如下的定义赋值语句完全正确:

 
  
 

其它的情况,编译器也类似的自动推断变量的类型。

3.var定义时,必须使用表达式初始化;

也就是必须定义成 var i=0; 没有初始化编译会报错,而且初始化值不能为null,编译器无法根据null来推断出局部变量的类型;初始值除了int,string等数据类型外,还可以使用new 一个对象作为初始值(从网上大家发表的看法,var使用最多的就是配合一个匿名类型的对象来使用,以及在Linq中使用)

配合匿名类型使用:

 
  

在linq中应用:

 
  
 
  

4.var和匿名类型:

 
  

 

注:

很多时候var是可以省略的;

但是在使用匿名类型初始化变量时,必须使用它;

由于只有编译器知道匿名类型的名称,因此必须在源代码中使用它;

如果已经使用了var初始化了查询变量,则还必须使用var作为对查询变量进行循环访问的foreach语句中迭代变量的类型。

5.var使用建议

一般var不要像“var i=9;”这样使用,程序可读性不高;在匿名类型中使用比较方便;foreach中使用也不错;var只是语言层面的东西,编译器会在编译的时候通过类型推断把它换成真正的类型。

转载于:https://www.cnblogs.com/selfcherish/archive/2009/02/10/1387163.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值