2017-06-20 114 views
-1

在c#中這種類型的循環是否有一個特殊的名稱?這是什麼樣的for循環?

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

編輯:我想我應該澄清爲什麼我問被downvoted預防,即使我敢肯定,這將也無妨。我試圖研究是否有以多線程方式執行此操作的方法。因爲Parallel.For不能以同樣的方式調用,所以我希望上面類型的for循環有一個特殊名稱,因爲它不像典型的for循環那樣遞增或遞減。

+7

這是一個循環。 –

+5

它是一個for循環 – scrappedcola

+4

我會說這是一個循環雖然。 – CodeCaster

回答

4

它讀取與第一logReader.ReadEvent的EventRecord,

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

然後檢查是否這種情況下爲null,

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

然後執行的體內循環,然後再次問另一個EventRecord。

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

並再次檢查返回值是否爲空。這一直持續到ReadEvent返回的EventRecord爲空。

這是聰明的,但我寧願一個更具可讀性while循環

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