2009-06-21 52 views
1

请看下面两种代码之间的区别是什么。有没有任何性能差异还是还有什么?ObjectQuery和“var”有什么区别?

第一代码



       ObjectQuery departmans = staffContext.Departman; 
       GridView1.DataSource = departmans; 
       GridView1.DataBind(); 

Second Codes 

var departmans = staffContext.Departman; 
    GridView1.DataSource = departmans; 
       GridView1.DataBind(); 

由于

回答

4

在输出代码的有效差取决于Departman的类型。如果Departman的类型是ObjectQuery,那么代码是等价的。

“var”关键字只是告诉编译器,请将此变量的类型设置为与指定给它的表达式相同的类型。在这种情况下,这是Departman的类型。

2

没有区别(假设staffContext.Departman的类型是ObjectQuery而不是ObjectQuery的某个子类)。编译器只是根据作业的右侧推断出类型。

1

var关键字代表的类型必须在编译时已知,所以只要类型实际上相同,在这两种情况下可执行代码将是相同的。

该类型是根据右侧的类型推断的,所以在某些情况下,您需要指定类型以获得所需的结果。例如:

Stream s = File.OpenRead(fileName); 

这当然会给你的类型Stream的变量。另一方面:

var s = File.OpenRead(fileName); 

这会给你一个FileStream类型的变量。

作为一般规则,如果右侧的类型不明显,则根本不应使用关键字var

相关问题