ReSharper 2026.1 Help

コードインスペクション:Async イテレーターには CancellationToken 型のパラメーターが 1 つ以上ありますが、EnumeratorCancellation 属性が付けられているものはありません。

このインスペクションは、 CancellationToken パラメーターを持つ非同期イテレータメソッドを報告しますが、そのパラメーターに [EnumeratorCancellation] 属性を付与していません。 この属性がないため、 await foreach から GetAsyncEnumerator(...) を介して渡されるキャンセルトークンは、おそらく使用しようとしたイテレータパラメーターに転送されません。

サンプル

using System.Collections.Generic; using System.Threading; class C { public async IAsyncEnumerable<int> M(CancellationToken token) { yield return 0; } }
using System.Collections.Generic; using System.Runtime.CompilerServices; using System.Threading; class C { public async IAsyncEnumerable<int> M([EnumeratorCancellation] CancellationToken token) { yield return 0; } }

クイックフィックス

この簡易修正では、選択された CancellationToken パラメーターに [EnumeratorCancellation] 属性を追加します。

2026 年 6 月 12 日