在C#中使用"var"声明变量时,是否会发生装箱/拆箱?
同时,在使用var声明变量时是否存在运行时类型不匹配的可能性?
不会。使用 var 关键字编译时会被视为指定了确切的类型名称,例如:
var x = 5;
和
int x = 5;
编译为相同的 IL 代码。
var只是一个便利关键字,告诉编译器找出类型并将"var"替换为该类型。
在使用LINQ等技术时,它最有用,因为查询的返回类型有时很难确定。
当使用嵌套泛型声明或其他较长的声明时,它也很有用(可以节省一些打字):
var dic = new Dictionary<string, Dictionary<int, string>>();