Linguaggio

ExecutableEnumerator.Current Proprietà

Definizione

Ottiene l'elemento corrente nella raccolta.

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

Valore della proprietà

Elemento corrente nella raccolta.

Esempio

Il seguente esempio di codice aggiunge un compito Bulk Insert al pacchetto, recupera la Executables collezione, crea un enumeratore e mostra il nome usando il TaskHostfile .

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  

Output di esempio:

La collezione contiene i seguenti valori:

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

Commenti

Dopo la creazione di un enumeratore, o dopo una chiamata al Reset metodo, il MoveNext metodo deve essere chiamato per avanzare l'enumeratore al primo elemento della collezione prima che possa leggere il valore della Current proprietà; altrimenti, Current è indefinito e lancia un'eccezione.

Current genera anche un'eccezione se l'ultima chiamata a MoveNext restituita false, che indica la fine della raccolta.

Currentnon sposta la posizione dell'enumeratore e le chiamate consecutive per restituire lo stesso oggetto fino Current a MoveNext quando non viene chiamato o Reset .

Un enumeratore rimane valido finché la raccolta rimane invariata. Se vengono apportate modifiche alla collezione, come aggiungere, modificare o eliminare elementi, l'enumeratore viene invalidato e diventa irrecuperabile; quindi, la chiamata successiva a MoveNext o Reset lancia un'eccezione. Tuttavia, se la collezione viene modificata tra le chiamate a MoveNext e Current, Current restituisce l'elemento a cui è impostata, anche se l'enumeratore è stato invalidato.

Si applica a