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
Strokes.StrokesEnumerator.MoveNext
Strokes.StrokesEnumerator.Reset