IQueryable和Queryable之间的区别

时间:2010-08-22 16:38:53

标签: c#

我还没有完全了解界面,所以我想我会以一种帮助我更好地理解它的方式来表达问题。

我正在按照让我制作IQueryable的教程。为什么我不能只创建一个Queryable?

4 个答案:

答案 0 :(得分:4)

Queryable只是一个包含extension methodsIQueryable<T>接口的静态类。您不会在代码中直接使用Queryable,而是在给定IQueryable<T>实例的情况下调用其方法。

答案 1 :(得分:2)

Queryable是一个静态类,它为实现IQueryable的任何内容提供了一些方便实用的方法。你无法做到,因为它已经制作完成了。您需要创建一个实际执行您希望它执行的操作的新类,并实现IQueryable,以便编写使用IQueryable(包括Queryable)的其他代码知道如何使用它。 / p>

答案 2 :(得分:1)

接口是定义方法和属性的契约,但接口中没有实现。

类通过为接口中定义的所有内容提供实现来实现接口。

由于接口没有实现,因此无法创建一个实例。您必须创建实现该接口的类的实例。

但是,您可以拥有接口类型的引用,但它将指向实际的对象。使用接口引用时,可以使用接口中定义的所有内容,但如果类包含更多方法,则在不转换实际类的引用的情况下无法访问它们。

答案 3 :(得分:0)

接口并不意味着如何对类进行编码,而只是如何定义与该类的交互。

可能有许多不同的类实现可以查询,但只要与所有这些类的交互相同,这就不重要了。