我还没有完全理解界面,所以我想用一种能够帮助我更好地理解它的方式来提出问题。IQueryable和Queryable之间的区别
我正在学习一个让我做出IQueryable的教程。为什么我不能创建一个Queryable?
我还没有完全理解界面,所以我想用一种能够帮助我更好地理解它的方式来提出问题。IQueryable和Queryable之间的区别
我正在学习一个让我做出IQueryable的教程。为什么我不能创建一个Queryable?
Queryable
只是一个静态类,包含extension methods到IQueryable<T>
接口。您不会在代码中直接使用Queryable
,而是在给定IQueryable<T>
实例的情况下调用其方法。
“您在代码中直接使用Queryable”。当然? – 2010-08-22 16:59:48
@Jon,我说'你不会直接在你的代码中使用Queryable'。 – 2010-08-22 17:33:04
对不起,我输错了,但我仍在查询你的陈述,因为我们一直在使用Queryable。或者你的意思是说,因为它们是扩展方法,你不会把它算作“直接使用”吗? – 2010-08-22 17:56:59
Queryable
是一个静态类,它提供了一些方便实用的方法来实现任何IQueryable
。你无法做到,因为它已经制作完成。你需要做一个新的类,它实际你想要它做的事情,并实施IQueryable
写入使用IQueryable
(包括Queryable
)知道如何使用它,其他代码。
接口并不意味着该类将如何进行编码,只有如何与该类互动将被定义。
有可能是可以查询类的许多不同的实现,但只要所有这些类的作用是相同的这是不重要的。
接口是定义的方法和属性合同,但在一个接口没有实现。
甲类实现通过提供实现对于在接口中定义的一切的接口。
由于接口没有实现,所以不能创建一个实例。你必须创建一个实现接口的类的实例。
但是,你可以有接口类型的引用,但它会指向一个实际的对象。在使用接口引用时,可以使用接口中定义的所有内容,但如果类包含更多方法,则无法将引用强制转换为实际的类,因此无法访问它们。
“make an IQueryable”是什么意思? – 2010-08-22 16:41:41