c#中是否存在此类for循环的特殊名称?
for (EventRecord eventdetail = logReader.ReadEvent(); eventdetail != null; eventdetail = logReader.ReadEvent())
编辑:我想我应该澄清为什么我要求防止被投票,尽管我确信这不会有什么关系。我试图研究是否有办法以多线程的方式做到这一点。因为Parallel.For
不能以同样的方式被调用,所以我希望上面类型的for循环有一个特殊的名称,因为它不像典型的for循环那样递增或递减。 / p>
答案 0 :(得分:4)
它使用第一个logReader.ReadEvent
读取EventRecordfor(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(;;)
将创建一个无限循环。