为什么我在IEnumerator上出错?

时间:2013-09-05 21:34:59

标签: c#

public void CheckFileType(string directoryPath)
        {
            IEnumerator files = Directory.GetFiles(directoryPath).GetEnumerator();
        }

错误:错误1使用泛型类型'System.Collections.Generic.IEnumerator'需要1个类型参数

3 个答案:

答案 0 :(得分:4)

您需要声明您要枚举的类型:

IEnumerator<string> files = Directory.GetFiles(directoryPath).GetEnumerator();

如果您不确定类型是否使用var

var files = Directory.GetFiles(directoryPath).GetEnumerator();

然后编译器将为您完成所有艰苦的工作。

答案 1 :(得分:2)

IEnumerator<T>是通用的,需要一个类型,例如:

IEnumerator<string> files = Directory.GetFiles(directoryPath).GetEnumerator();

答案 2 :(得分:1)

您所指的类型是通用的,这意味着您需要提供通用参数,如下所示:

IEnumerator<string> files = [...];

恰好有IEnumerator的非通用版本,但它位于System.Collections命名空间,而不是System.Collections.Generic命名空间。如果您想使用非通用版本(您真的不应该使用通用版本),则需要为该命名空间添加using或使用完全限定名称。