System::Collections::Generic::IEnumerator 类
内容
[
隐藏
]IEnumerator class
可用于遍历某些元素的枚举器接口。此类的对象只能使用 System::MakeObject() 函数分配。切勿在栈上或使用 operator new 创建此类型的实例,因为这会导致运行时错误和/或断言故障。始终将此类包装到 System::SmartPtr 指针中,并使用该指针将其作为参数传递给函数。
template<typename T>class IEnumerator : public virtual System::IDisposable,
public System::Details::EnumeratorBasedIterator<T>,
protected System::Details::IteratorPointerUpdater<T, false>
| 参数 | 描述 |
|---|---|
| T | 元素类型。 |
方法
| 方法 | 描述 |
|---|---|
| AsVirtualizedIterator() | 准备迭代器以供 VirtualizedIterator 类使用。 |
| CloneIterator() const override | 克隆当前迭代器。 |
| virtual Current() const | 获取当前元素。 |
| virtual get_Current() const | 获取当前元素。 |
| IEnumerator() | |
| IncrementIterator() override | 将迭代器向前移动一步。 |
| InitializeIterator() override | 执行第一次 MoveNext() 调用,并准备枚举器对象供 VirtualizedIterator 使用。 |
| MarkOwnedByVirtualizedIterator() | 标记由虚拟化迭代器拥有的枚举器。 |
| virtual MoveNext() | 将枚举器移动到下一个元素。如果之前未引用任何元素,则将引用设置为第一个可用元素。如果已到达容器末尾,则不执行任何操作。 |
| virtual Reset() | 将枚举器重置到第一个元素之前的位置。 |
| virtual ~IEnumerator() |
Typedefs
| 类型定义 | 描述 |
|---|---|
| ValueType | 值类型。 |
备注
#include <system/collections/list.h>
#include <system/smart_ptr.h>
using namespace System;
using namespace System::Collections::Generic;
int main()
{
// 创建 List 类实例。
auto collection = MakeObject<List<int>>();
// 填充列表。
collection->Add(1);
collection->Add(2);
collection->Add(3);
// 获取列表的枚举器。
auto enumerator = collection->GetEnumerator();
while (enumerator->MoveNext())
{
// 获取当前元素并打印。
std::cout << enumerator->get_Current() << ' ';
}
// 重置枚举器。
enumerator->Reset();
return 0;
}
/*
This code example produces the following output:
1 2 3
*/
另见
- Class IDisposable
- Namespace System::Collections::Generic
- Library Aspose.Font for C++