请看下面两种代码之间的区别。是否有任何性能差异或其他什么?
第一个代码
ObjectQuery departmans = staffContext.Departman;
GridView1.DataSource = departmans;
GridView1.DataBind();
Second Codes
var departmans = staffContext.Departman;
GridView1.DataSource = departmans;
GridView1.DataBind();
由于
答案 0 :(得分:4)
输出代码的有效差异取决于Departman的类型。如果Departman的类型是ObjectQuery,则代码是等效的。
“var”关键字只是告诉编译器,请将此变量的类型设置为与分配给它的表达式相同的类型。在这种情况下,它是Departman的类型。
答案 1 :(得分:2)
没有区别(假设staffContext.Departman的类型是ObjectQuery而不是ObjectQuery的某个子类)。编译器只根据赋值的右侧推断出类型。
答案 2 :(得分:1)
var
关键字表示的类型必须在编译时知道,因此只要在两种情况下类型实际相同,可执行代码都是相同的。
根据右侧的类型推断类型,因此在某些情况下,您需要指定类型以获得所需的结果。例如:
Stream s = File.OpenRead(fileName);
这当然会为您提供Stream
类型的变量。另一方面:
var s = File.OpenRead(fileName);
这将为您提供FileStream
类型的变量。
作为一般规则,如果右侧的类型不明显,则根本不应使用var
关键字。