2017-06-20 4 views
-1

Gibt es einen speziellen Namen für diese Art von for-Schleife in C#?Welche Art von for-Schleife ist das?

for (EventRecord eventdetail = logReader.ReadEvent(); eventdetail != null; eventdetail = logReader.ReadEvent()) 

EDIT: Ich glaube, ich geklärt haben sollte, warum ich vor einer Downvoted zu verhindern, wurde gefragt, obwohl ich sicher bin, dass nicht von Bedeutung gewesen wäre. Ich versuche zu erforschen, ob es eine Möglichkeit gibt, dies auf Multithread-Art zu tun. da Parallel.For nicht auf die gleiche Weise aufgerufen werden kann, hatte ich gehofft, dass es einen speziellen Namen für den obigen Typ von for-Schleife gab, da er nicht inkrementiert oder dekrementiert wird wie die typische for-Schleife.

+7

Es ist eine for-Schleife ist. –

+5

es ist eine for-Schleife – scrappedcola

+4

Ich würde sagen, es ist eine For-Schleife obwohl. – CodeCaster

Antwort

4

Es hat eine Eventrecord mit dem ersten logReader.ReadEvent liest,

for(EventRecord eventdetail = logReader.ReadEvent(); .... 

dann überprüft, ob diese Instanz null ist,

for(.....;eventdetail != null;....) 

führt dann den Körper der for-Schleife und dann wieder fragen nach ein anderes EventRecord.

for(.....;.....;eventdetail = logReader.ReadEvent()) 

und überprüft erneut, ob die Rückgabe Null ist. Dies wird fortgesetzt, bis das EventRecord, das von ReadEvent zurückgegeben wird, null ist.

Es ist klug, aber ich würde eine besser lesbare bevorzugen while-Schleife

while((EventRecord eventdetail = logReader.ReadEvent()) != null) 
{ 
    ..... 
}