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 枚举器
注解
创建枚举器或调用 Reset 方法后,必须调用 MoveNext 方法,才能将枚举器提升到集合的第一个元素,然后枚举器才能读取 Current 属性的值:否则, 当前 未定义并引发异常。
如果返回false
对 MoveNext 的最后一次调用,则当前也会引发异常,这表示集合的末尾。
当前 不会移动枚举器的位置,并且对 Current 的连续调用将返回相同的对象,直到调用 MoveNext 或 Reset 。
只要集合保持不变,枚举器就仍有效。 如果对集合进行了更改(如添加、修改或删除元素),则枚举器将失效并变为不可恢复;因此,对 MoveNext 或 Reset 的下一次调用将引发 InvalidOperationException。 但是,如果在对 MoveNext 和 Current 的调用之间修改集合, 则 Current 将返回它设置为的元素,即使枚举器已失效也是如此。