Freigeben über


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

Im folgenden Codebeispiel wird dem Paket eine Bulk Insert-Aufgabe hinzugefügt, die Executables Auflistung abgerufen, eine Aufzählung erstellt und der Name mit dem TaskHostNamen angezeigt.

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 Auflistung enthält die folgenden Werte:

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

Hinweise

Nachdem ein Aufzählungsator erstellt wurde oder nach einem Aufruf der Reset Methode aufgerufen werden muss, muss die MoveNext Methode aufgerufen werden, um das erste Element der Auflistung zu durchlaufen, bevor der Enumerationerator den Wert der Current Eigenschaft lesen kann; andernfalls Current wird eine Ausnahme ausgelöst.

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

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

Ein Enumerator bleibt gültig, solange die Auflistung unverändert bleibt. Wenn Änderungen an der Auflistung vorgenommen werden, z. B. Hinzufügen, Ändern oder Löschen von Elementen, wird der Aufzählungsator ungültig und kann nicht wiederhergestellt werden; Der nächste Aufruf oder MoveNextReset löst daher eine Ausnahme aus. Wenn die Auflistung jedoch zwischen aufrufen MoveNext und Currentgeändert wird, Current gibt das Element zurück, auf das sie festgelegt ist, auch wenn der Aufzählungsator ungültig wurde.

Gilt für: