Freigeben über


Strokes.StrokesEnumerator.Current-Eigenschaft

Ruft das Stroke-Objekt in der Strokes-Auflistung ab, auf das der Enumerator zeigt.

Namespace:  Microsoft.Ink
Assembly:  Microsoft.Ink (in Microsoft.Ink.dll)

Syntax

'Declaration
Public ReadOnly Property Current As Stroke
'Usage
Dim instance As Strokes..::.StrokesEnumerator
Dim value As Stroke

value = instance.Current
public Stroke Current { get; }
public:
property Stroke^ Current {
    Stroke^ get ();
}
/** @property */
public Stroke get_Current()
public function get Current () : Stroke

Eigenschaftenwert

Typ: Microsoft.Ink.Stroke
Das Stroke-Objekt in der Strokes-Auflistung, auf das der Enumerator zeigt.

Hinweise

Nach dem Erstellen eines Strokes.StrokesEnumerator-Enumerators oder nach dem Aufrufen der Reset-Methode muss die MoveNext-Methode aufgerufen werden, um den Enumerator vor dem Lesen des Werts der Current-Eigenschaft auf das erste Element der Auflistung festzulegen. Andernfalls ist die Current-Eigenschaft nicht definiert.

Die Current-Eigenschaft löst eine Ausnahme aus, wenn der letzte Aufruf der MoveNext-Methode false zurückgibt. Wenn der letzte Aufruf der MoveNext-Methode den Wert false zurückgibt, hat der Enumerator das Ende der Strokes-Auflistung erreicht.

Die Current-Eigenschaft verschiebt nicht die Position des Enumerators. Nachfolgende Aufrufe der Current-Eigenschaft geben dasselbe Objekt zurück, bis entweder die MoveNext-Methode oder die Reset-Methode aufgerufen werden.

Ein Enumerator bleibt so lange gültig, bis die Auflistung geändert wird. Wenn an der Auflistung Änderungen vorgenommen werden, z. B. durch Hinzufügen, Ändern oder Löschen von Elementen, wird der Enumerator unwiderruflich ungültig. Der nächste Aufruf der MoveNext-Methode oder der Reset-Methode löst eine InvalidOperationException-Ausnahme aus. Wenn die Auflistung zwischen dem Aufruf der MoveNext-Methode und dem Aufruf der Current-Eigenschaft geändert wird, gibt die Current-Eigenschaft das Element zurück, auf das sie festgelegt wurde, auch wenn der Enumerator bereits ungültig ist.

Beispiele

In diesen Beispielen werden zwei Verfahren zum Enumerieren der Strokes-Auflistung veranschaulicht, um jedes Stroke-Objekt in der Auflistung abzurufen. Die Strokes-Auflistung wird von der Ink.Strokes-Eigenschaft zurückgegeben.

In diesem Beispiel wird der IEnumerator für die Strokes-Auflistung abgerufen und zum Durchlaufen der Auflistung verwendet.

Private Sub EnumerateStrokesWithEnumerator(ByVal mInk As Ink)
    ' access the Strokes property via using statement
    ' to insure that the object mStrokes is disposed when finished
    ' Otherwise, you will have a memory leak
    Using mStrokes As Strokes = mInk.Strokes
        Dim mStrokesEnumerator As IEnumerator = mStrokes.GetEnumerator()
        mStrokesEnumerator.Reset()
        While (mStrokesEnumerator.MoveNext())
            Dim S As Stroke = DirectCast(mStrokesEnumerator.Current, Stroke)
            Me.listBoxStrokeId.Items.Add(S.Id)
        End While
    End Using
End Sub
private void EnumerateStrokesWithEnumerator(Ink mInk)
{
    // access the Strokes property via using statement
    // to insure that the object mStrokes is disposed when finished
    // Otherwise, you will have a memory leak
    using (Strokes mStrokes = mInk.Strokes)
    {
        IEnumerator mStrokesEnumerator = mStrokes.GetEnumerator();
        mStrokesEnumerator.Reset();
        while (mStrokesEnumerator.MoveNext())
        {
            Stroke S = (Stroke)mStrokesEnumerator.Current;
            this.listBoxStrokeId.Items.Add(S.Id);
        }
    }
}

In diesem Beispiel wird die foreach-Anweisung verwendet, mit der die GetEnumerator-Methode im internen Code aufgerufen wird, den der Compiler zum Unterstützen der Anweisung generiert.

Private Sub EnumerateStrokesWithForEach(ByVal mInk As Ink)
    ' access the Strokes property via using statement
    ' to insure that the object mStrokes is disposed when finished
    ' Otherwise, you will have a memory leak
    Using mStrokes As Strokes = mInk.Strokes
        For Each S As Stroke In mStrokes
            Me.listBoxStrokeId.Items.Add(S.Id)
        Next
    End Using
End Sub
private void EnumerateStrokesWithForEach(Ink mInk)
{    
    // access the Strokes property via using statement
    // to insure that the object mStrokes is disposed when finished
    // Otherwise, you will have a memory leak
    using (Strokes mStrokes = mInk.Strokes)
    {
        foreach (Stroke S in mStrokes)
        {
            this.listBoxStrokeId.Items.Add(S.Id);
        }
    }
}

Plattformen

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Versionsinformationen

.NET Framework

Unterstützt in: 3.0

Siehe auch

Referenz

Strokes.StrokesEnumerator-Klasse

Strokes.StrokesEnumerator-Member

Microsoft.Ink-Namespace

Strokes

Stroke

Strokes.StrokesEnumerator.MoveNext

Strokes.StrokesEnumerator.Reset

Weitere Ressourcen

System.Collections.IEnumerator