gpt4 book ai didi

c# - "for (bool flag = true; flag; flag = false) { ... }"- 这正常吗?

转载 作者:太空狗 更新时间:2023-10-30 00:33:59 30 4
gpt4 key购买 nike

我从未见过这样初始化的 for 循环,不明白为什么要这样写?

我正在研究如何连接到 .NET 中的 IMAP 服务器,并开始查看名为 ImapX 的库中的代码。 .我在将数据写入 NetworkStream 的方法中找到了 for 循环,然后似乎在时髦的 for 循环中读取响应。我不想逐字复制和粘贴别人的代码,但要点如下:

public bool SendData(string data)
{
try
{
this.imapStreamWriter.Write(data);

for (bool flag = true; flag; flag = false)
{
var s = this.imapStreamReader.ReadLine();
}
}
catch (Exception)
{
return false;
}

return true;
}

同样,这不是确切的代码,但它是一般的想法。这就是该方法所做的全部,它不使用服务器响应,如果没有抛出异常,它只返回 true。我只是不明白 for 循环是如何或为什么这样使用的;任何人都可以解释初始化此优惠的优势(如果有的话)吗?

最佳答案

这是执行一次循环的可怕方式。如果您将 flag initalizer 更改为并非总是 true 的内容,它可能稍微更有意义,但不是很多。我之前完全不认真地建议过这段代码:

Animal animal = ...;
for (Dog dog = animal as Dog; dog != null; dog = null)
{
// Use dog...
}

... 作为使用 as 运算符而不“污染”外部范围的一种方式。但这是语言愚蠢,而不是我真正使用过的东西。

关于c# - "for (bool flag = true; flag; flag = false) { ... }"- 这正常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9298721/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com