这是什么样的for循环?

时间:2017-06-20 15:52:22

标签: c#

c#中是否存在此类for循环的特殊名称?

for (EventRecord eventdetail = logReader.ReadEvent(); eventdetail != null; eventdetail = logReader.ReadEvent())
编辑:我想我应该澄清为什么我要求防止被投票,尽管我确信这不会有什么关系。我试图研究是否有办法以多线程的方式做到这一点。因为Parallel.For不能以同样的方式被调用,所以我希望上面类型的for循环有一个特殊的名称,因为它不像典型的for循环那样递增或递减。 / p>

2 个答案:

答案 0 :(得分:4)

它使用第一个logReader.ReadEvent

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

然后检查此实例是否为空,

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

然后执行for循环的主体,然后再次询问另一个EventRecord。

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

并再次检查返回值是否为空。这一直持续到ReadEvent返回的EventRecord为空。

这很聪明,但我更喜欢更易读的循环

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

答案 1 :(得分:0)

没有特殊名称。这只是工厂for loop的常规运行。 它有一个初始子句,条件子句,迭代子句。

对于它的价值...该子句中的任何内容都可以省略!
For(;;)将创建一个无限循环。

for statement (C# reference)