这是什么样的for循环?

问题描述 投票:0回答:2

c# 中这种类型的 for 循环有特殊的名称吗?

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

编辑:我正在尝试研究是否有办法以多线程方式执行此操作。由于

Parallel.For
不能以相同的方式调用,我希望上述类型的
for loop
有一个特殊的名称,因为它不像典型的
for loop
那样递增或递减。

c#
2个回答
4
投票

它使用第一个 logReader.ReadEvent 读取 EventRecord,

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

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

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

然后执行 for 循环体,然后再次请求另一个 EventRecord。

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

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

它很聪明,但我更喜欢更具可读性的 while 循环

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

0
投票

没有特别的名字。这只是一个普通的工厂运行

for loop
。 它有一个初始化子句、条件子句、迭代子句。

无论其价值如何...任何一个条款都可以省略!
IE。

For(;;)
将创建无限循环。

for 语句(C# 参考)

© www.soinside.com 2019 - 2024. All rights reserved.