gpt4 book ai didi

syntax - C++/CLI 中的 "for each"语句

转载 作者:行者123 更新时间:2023-12-01 03:00:08 25 4
gpt4 key购买 nike

array<int> ^ints = gcnew array<int>{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for each(int i in ints)
if(i % 2 == 0)
Debug::WriteLine("Even\n");
else
Debug::WriteLine("Odd\n");

为什么上面的编译失败?如果我使用 for(int i; ...) 效果很好或者如果我附上 if-else大括号内。我知道手册清楚地表明需要大括号,但我想知道为什么这偏离了预期的行为?

最佳答案

我找不到任何官方文档,但我可以确认您看到的行为。似乎编译器在寻找 for each 之后的单个语句方面过于激进。 , 到 split else 的地步来自 if .它编译它就好像您编写了以下内容,这显然是不正确的。

array<int> ^ints = gcnew array<int>{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for each(int i in ints)
{
if(i % 2 == 0)
Debug::WriteLine("Even\n");
}
else
Debug::WriteLine("Odd\n");

这显然不同于常规的 C++ for循环行为,因此您可能希望在 http://connect.microsoft.com 提交错误。 .

关于syntax - C++/CLI 中的 "for each"语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1079325/

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