ExecutableEnumerator.Current Eigenschaft

Definition

Ruft das aktuelle Element in der Auflistung ab.

public:
 property Microsoft::SqlServer::Dts::Runtime::Executable ^ Current { Microsoft::SqlServer::Dts::Runtime::Executable ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.Executable Current { get; }
member this.Current : Microsoft.SqlServer.Dts.Runtime.Executable
Public ReadOnly Property Current As Executable

Eigenschaftswert

Das aktuelle Element in der Auflistung.

Beispiele

Das folgende Codebeispiel fügt dem Paket eine Bulk Insert-Aufgabe hinzu, ruft die Executables Sammlung ab, erstellt einen Enumerator und zeigt den Namen mit dem TaskHost.

using System;  
using System.Collections.Generic;  
using System.Text;  
using Microsoft.SqlServer.Dts.Runtime;  

namespace Executables_API  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            // Create the package and add the BulkInsertTask.  
            Package pkg = new Package();  
            Executable exec = pkg.Executables.Add("STOCK:BulkInsertTask");  

            // Obtain the collection.  
            Executables pgkExecs = pkg.Executables;  

            //Create the Enumerator.  
            ExecutableEnumerator myEnumerator = pgkExecs.GetEnumerator();  
            Console.WriteLine("The collection contains the following values:");  
            int i = 0;  
            Executable myExec;  
            TaskHost myTH;  
            while ((myEnumerator.MoveNext()) && (myEnumerator.Current != null))  
            {  
                myExec = (Executable)myEnumerator.Current;  
                myTH = (TaskHost)myExec;  
                Console.WriteLine("[{0}] {1}", i++, myTH.Name);  
            }  
            // Reset puts the index pointer before the beginning.  
            // Do not retrieve from the collection until MoveNext is called.  
            myEnumerator.Reset();  
            myEnumerator.MoveNext();  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  

Namespace Executables_API  
    Class Program  
        Shared  Sub Main(ByVal args() As String)  
            ' Create the package and add the BulkInsertTask.  
            Dim pkg As Package =  New Package()   
            Dim exec As Executable =  pkg.Executables.Add("STOCK:BulkInsertTask")   

            ' Obtain the collection.  
            Dim pgkExecs As Executables =  pkg.Executables   

            'Create the Enumerator.  
            Dim myEnumerator As ExecutableEnumerator =  pgkExecs.GetEnumerator()   
            Console.WriteLine("The collection contains the following values:")  
            Dim i As Integer =  0   
            Dim myExec As Executable  
            Dim myTH As TaskHost  
            While (myEnumerator.MoveNext()) &&(myEnumerator.Current <> Nothing)  
                myExec = CType(myEnumerator.Current, Executable)  
                myTH = CType(myExec, TaskHost)  
                Console.WriteLine("[{0}] {1}",i = Console.WriteLine("[{0}] {1}",i + 1  
            End While  
            ' Reset puts the index pointer before the beginning.  
            ' Do not retrieve from the collection until MoveNext is called.  
            myEnumerator.Reset()  
            myEnumerator.MoveNext()  
         End Sub  
    End Class  
End Namespace  

Beispielausgabe:

Die Sammlung enthält folgende Werte:

[0] {C435F0C7-97E8-4DCC-A0FF-C6C805D9F64E}

Hinweise

Nachdem ein Enumerator erstellt wurde oder nach einem Aufruf der Methode Reset , muss die MoveNext Methode aufgerufen werden, um den Enumerator auf das erste Element der Sammlung vorzuschieben, bevor der Enumerator den Wert der Eigenschaft Current lesen kann; andernfalls ist undefiniert Current und wirft eine Ausnahme.

Current löst auch eine Ausnahme aus, wenn der letzte Aufruf MoveNext zurückgegeben wird false, der das Ende der Auflistung angibt.

Current verschärbt die Position des Enumerators nicht, und aufeinander folgende Aufrufe, um Current dasselbe Objekt zurückzugeben, bis eine MoveNext oder Reset eine aufgerufen wird.

Ein Enumerator bleibt gültig, solange die Auflistung unverändert bleibt. Wenn Änderungen an der Sammlung vorgenommen werden, wie das Hinzufügen, Ändern oder Löschen von Elementen, wird der Enumerator ungültig und nicht mehr wiederherstellbar; daher wird beim nächsten Aufruf zu MoveNext oder Reset eine Ausnahme geworfen. Wenn die Sammlung jedoch zwischen Aufrufen von MoveNext und CurrentCurrent geändert wird, wird das Element zurückgegeben, auf das sie gesetzt ist, selbst wenn der Enumerator ungültig gemacht wurde.

Gilt für: