いくつかの値を格納する下位コレクションとして、ConcurrentBag<T>
とList<T>
の理解に問題があります。Resharper ConcurrentBag <T> AssignNullToNotNull(リストではありません)<T>
私は可算であるべきクラスを書いていると私は、下地のConcurrentBag<T>
を反復処理したいのですが、ReSharperのはreturn _items.GetEnumerator();
があることを教えてください:
エンティティに対する可能な「NULL」の割り当ては、「NOTNULL」が付きます属性
この理由は何ですか?
コード例:
List<T>
代わりのConcurrentBag<T>
:public class MyClass : IEnumerable<Item> { private readonly ConcurrentBag<Item> _items; public MyClass() { _items = new ConcurrentBag<Item>(); } public IEnumerator<Item> GetEnumerator() { if(_items == null) throw new InvalidOperationException("Error."); return _items.GetEnumerator(); // AssignNullToNotNull } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } }
のReSharperはすべてがと罰金であることを私に伝えます。
return ((IEnumerable<ITranslationItem>)_items).GetEnumerator();
私のアプローチに何か問題ですか?
ありがとうございます!