Queue.GetEnumerator Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy enumerátort ad vissza, amely a Queue.
public:
virtual System::Collections::IEnumerator ^ GetEnumerator();
public virtual System.Collections.IEnumerator GetEnumerator();
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumerator
Public Overridable Function GetEnumerator () As IEnumerator
Válaszok
An IEnumerator for the Queue.
Megvalósítás
Megjegyzések
A C# nyelv foreach utasítása (for each az Visual Basic) elrejti az enumerátorok összetettségét. Ezért az enumerátor közvetlen módosítása helyett ajánlott a használat foreach .
Az enumerátorok a gyűjtemény adatainak olvasására használhatók, de nem használhatók az alapul szolgáló gyűjtemény módosítására.
Kezdetben az enumerátor a gyűjtemény első eleme elé kerül. Reset visszahozza az enumerátort ebbe a pozícióba. Ebben a pozícióban Current nincs meghatározva. Ezért a gyűjtemény értékének olvasása előtt meg kell hívnia MoveNext , hogy az enumerátort a gyűjtemény első elemére irányozza Currentelő.
Current ugyanazt az objektumot adja vissza, amíg meg MoveNext nem hívja vagy Reset meghívja. MoveNext elemet a következő elemre állítja Current .
Ha MoveNext a gyűjtemény végére ér, az enumerátor a gyűjtemény utolsó eleme után lesz elhelyezve, és MoveNext visszaadja a függvényt false. Ha az enumerátor ebben a pozícióban van, a következő hívások is visszatérnek MoveNextfalse. Ha az utolsó visszaküldött falseCurrent hívás MoveNext nincs meghatározva. Ha ismét a gyűjtemény első elemére szeretne állítani Current , meghívhatja Reset a következőt MoveNext: .
Az enumerátorok mindaddig érvényesek maradnak, amíg a gyűjtemény nem változik. Ha módosításokat végez a gyűjteményen, például elemeket ad hozzá, módosít vagy töröl, az enumerátor visszavonhatatlanul érvénytelen lesz, és a viselkedése nincs meghatározva.
Az enumerátor nem rendelkezik kizárólagos hozzáféréssel a gyűjteményhez; ezért a gyűjteményen keresztüli számbavétel alapvetően nem szálbiztos eljárás. Az enumerálás során a szálbiztonság érdekében zárolhatja a gyűjteményt a teljes enumerálás során. Ahhoz, hogy a gyűjtemény több szálon keresztül is elérhető legyen olvasáshoz és íráshoz, saját szinkronizálást kell implementálnia.
Ez a metódus egy O(1) művelet.