我知道我们无法创建实例Interface.但为什么我们可以写Interface在左边?那些仅仅是Interface的引用(对于实现这个的类)是实例吗?
如果我们无法创建Interface实例,那么P这个例子中的类型是什么?
string[] names = {"John", "Bob", "Mark"};
IEnumerable<string> P = names.Where(n => n.Contains('o'));
Run Code Online (Sandbox Code Playgroud)
P 是类型的 IEnumerable<string>
在这里,您将声明局部变量的类型P.
P保存类型IEnumerable<string>,并且在不直接实例化接口时,可以实例化具体类,但只需保存对接口的引用.
通过Where()调用返回的实例只需遵守IEnumerable<string>定义的合同.
| 归档时间: |
|
| 查看次数: |
344 次 |
| 最近记录: |