C#中的变量类型var

什么是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变量,这样使我们的代码可读性降低,维护难度增加。