只是浏览 LINQ tutorials on MSDN并遇到以下代码:
IEnumerable<int> numQuery1 =
from num in numbers
where num % 2 == 0
orderby num
select num;
我不明白接口(interface)是如何返回的?我的理解是接口(interface)只是类的轮廓,当然不能包含任何数据。
我希望这个能被清理掉。
最佳答案
接口(interface)是关于返回值的契约:Linq 实际上不会告诉您什么它会返回(在实际的类中),但它会保证它的行为类似于 IEnumerable<int>
,即它返回的类实现了这个接口(interface)。它可能是 List<int>
或 WhackyLinqInternalEnumerable<int>
- 但你并不真正关心,因为,好吧,你感兴趣的只是界面(你可以用对象做什么)。
可能会让您感到困惑的一件事是变量和它所代表的对象之间的区别:对于(引用)类型,变量只是“指向”对象。你可以有很多变量“指向”同一个对象。它们不需要具有相同的类型,但它们所指向的对象必须与变量具有相同的类型、子类型或(在具有接口(interface)类型的变量的情况下)必须实现相同的变量。
关于c# - LINQ 返回一个接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7191315/