大致记录下var在C#中的用法。
什么时候用var
变量由编译器分配类型
简单来说,当你不确定将来某个变量可能是什么类型的时候就用var。比如接受某个物品的id时,这个id可能是从1一直到99999的int型,也可能是超长的字符串。但是你目前还没想好id到底该用哪一种方式,这时你就可以用var去声明变量,等到该变量初始化的时候,编译器就会自动把它转为合适的类型。
需要注意的是,var声明的隐式变量在初始化后就不能变更为其他类型的变量了。比如下面这个错误例子:
var tmp=10;
tmp="Hello";
Console.WriteLine(tmp);
/*报错:
*(2,11): error CS0029: Cannot implicitly convert type 'int' to 'string'
*/
而且必须在定义var的同时对其进行初始化,因为编译器要在定义变量的时候就为其分配对应的类型。下面这个代码也是错误示范
var tmp;
tmp="Hello";
当然经常用var也不太好,要是整段代码看下来都是var,那找bug的时候还得去想下这个变量到底是啥类型,还是挺折磨的。