我有一个关于接口(interface)的问题。我知道你不能创建接口(interface)实例,对吗?但是我在演示 IDictionaryEnumerator 接口(interface)的用法的页面上看到:
// Loop through all items of a Hashtable
IDictionaryEnumerator en = hshTable.GetEnumerator();
while (en.MoveNext())
{
string str = en.Value.ToString();
}
这不是创建一个名为 en 的 IDictionaryEnumerator 类型的对象吗?我读过有关 GetEnumerator()
的内容,试图了解它返回的内容:
Returns a reference to an enumerator object, which is used to iterate over a Collection Object.
..但我真的不明白什么时候应该创建这样的接口(interface)引用而不是类对象。我的意思是这样做的好处是什么。
提前谢谢您。
最佳答案
这只是多态性的演示 - hshTable.GetEnumerator() 返回一个在外部世界中看起来像 IDictionaryEnumerator 的实例。该实例可以表现出与从 myFactory.GetEnumerator() 获取的实例不同的行为。这两个对象看起来都像 IDictionaryEnumerator,但对 IDictionaryEnumerator 接口(interface)公开的方法具有不同的实现。希望能帮助到你。
关于.net - 引用接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3763531/