私たちは非常に古いコードベースを持っています (それは実際にはひどい品質ではありません)。これは、.Net がプレリリースされたときにさかのぼります。これが、これらの奇妙な規則のいくつかの原因であると思われます。
とにかく、私たちは .Net 1.1 のサポートを終了し始めたばかりで、ものをジェネリックに変換したり、Linq を使用したり、楽しいことをしたりして、干し草の日を過ごしています。コードベースで最も面倒なパターンの 1 つは、次のようなものがあることです。
private ArrayList mylist;
public IEnumerator MyList
{
get
{
if(mylist==null)
return new EmptyEnumerator.Enumerator;
return mylist.GetEnumerator();
}
}
このパターンはforeach(var item in MyList)
、IEnumerator が IEnumerable を実装していないため、単純に実行できないため、特に恐ろしいものです。代わりに、次のようにする必要があります。
IEnumerator enumerator=MyList;
while(enumerator.MoveNext())
{
object item=enumerator.Current;
}
ReadOnlyCollection<T>
したがって、リファクタリングには、もちろん、またはIList<T>
類似のものを使用したいと考えています。ただし、これを行うには、do へのすべての参照を更新するMyList
必要があります。
IEnumerator enumerator=MyList;
に
IEnumerator enumerator=MyList.GetEnumerator();
場合によっては、1 つのプロパティへの参照が 100 を超えることもあります。これを簡単にするツールはありますか?最近、Resharper を入手しましたが (この問題のためではなく、一般的な使用のためだけに)、このタイプのシナリオには対応していないようです。