ForEachEnumeratorInfosEnumerator.Current 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回集合中的当前 ForEachEnumeratorInfo 对象。
public:
property Microsoft::SqlServer::Dts::Runtime::ForEachEnumeratorInfo ^ Current { Microsoft::SqlServer::Dts::Runtime::ForEachEnumeratorInfo ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.ForEachEnumeratorInfo Current { get; }
member this.Current : Microsoft.SqlServer.Dts.Runtime.ForEachEnumeratorInfo
Public ReadOnly Property Current As ForEachEnumeratorInfo
属性值
集合中的当前 ForEachEnumeratorInfo 对象。
示例
以下代码示例创建一个枚举器,然后使用 Current 和 MoveNext 方法来浏览集合。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Runtime.Enumerators.Item;
namespace ForEachEnums
{
class Program
{
static void Main(string[] args)
{
Application app = new Application();
ForEachEnumeratorInfos feInfos = app.ForEachEnumeratorInfos;
//Create the Enumerator.
ForEachEnumeratorInfosEnumerator myEnumerator = feInfos.GetEnumerator();
Console.WriteLine("The collection contains the following values:");
int i = 0;
while ((myEnumerator.MoveNext()) && (myEnumerator.Current != null))
Console.WriteLine("[{0}] {1}", i++, myEnumerator.Current.Name);
}
}
}
示例输出:
该集合包含以下数值:
[0] 对每个文件枚举器
[1] 对每个项目计数员
[2] 对于每个ADO普查员
[3] 对于每个 ADO.NET 模式行集枚举器
[4] 对于每个变量枚举器
[5] 对于每个 nodeList 枚举器
[6] 对于每个SMO普查员
注解
在创建枚举器或调用 重置 方法后,必须调用 MoveNext 方法,将枚举子推进到集合的第一个元素,枚举器才能读取 当前 属性的值;否则, Current 未定义,并抛出异常。
如果最后一次调用 MoveNext,Currentfalse也会抛出异常,表示集合结束。
Current 不会移动枚举器的位置,连续调用 Current 返回相同对象,直到调用 MoveNext 或 Reset 。
只要集合保持不变,枚举器就保持有效。 如果对集合进行了更改,比如添加、修改或删除元素,枚举器将失效并无法恢复;因此,下一次调用 MoveNext 或 Reset 会抛出 InvalidOperationException。 然而,如果集合在调用 MoveNext 和 Current 之间被修改, Current 会返回它被设定的元素,即使枚举器已被失效。