代码检查:只有在返回 IAsyncEnumerable<> 的异步迭代器方法中,'EnumeratorCancellation' 特性才对类型为 CancellationToken 的参数有效。
此检查报告 [EnumeratorCancellation] 在无效位置被使用。 该特性只有在返回 IAsyncEnumerable<T> 的异步迭代器方法中的 CancellationToken 参数上才有意义。 在其他参数类型或方法结构上,该特性无效。
示例
using System.Collections.Generic;
using System.Runtime.CompilerServices;
class C
{
public async IAsyncEnumerable<int> M([EnumeratorCancellation] int token)
{
yield return token;
}
}
using System.Collections.Generic;
class C
{
public async IAsyncEnumerable<int> M(int token)
{
yield return token;
}
}
快速修复
快速修复会移除无效的特性。 另一个有效的手动修复方法是更改方法,使特性应用于返回 IAsyncEnumerable<T> 的异步迭代器的 CancellationToken 参数。
2026年 5月 8日