代码检查:迭代器永不返回
此检查会报告没有可达完成路径的迭代器方法或局部函数。 实际上,迭代器永远不会到达末尾,也不会停止产生值,因为每条执行路径都无限循环或无法完成。
示例
IEnumerable<int> GetValues()
{
while (true)
{
yield return 1;
}
}
IEnumerable<int> GetValues(int count)
{
for (var i = 0; i < count; i++)
{
yield return 1;
}
}
快速修复
没有针对此检查的专用快速修复。 通常的修正方法是添加可达的退出条件,使迭代器能够结束。
2026年 5月 8日