1

リストがどのように動的であり、舞台裏でどのように機能するかについて興味があり、簡単なグーグル検索で何かを見つけるのは驚くほど難しいことがわかったので、これは良い質問だと思いました. リストクラスはデータを配列に格納すると思いますが、リストのユーザーが心配する必要がないように、舞台裏で配列を再作成するのと同じくらい簡単ですか? もしそうなら、それはどのくらいの頻度でいつ行われますか?

4

1 に答える 1

3

AList<T>は、配列の単なるラッパーです。追加されたアイテムの数とその容量を追跡します。容量を超えて新しい項目を追加しようとすると、(元のサイズの 2 倍の) 新しい配列が割り当てられ、すべてがコピーされてから、新しい項目が配列に追加されます。

特定の .Net クラスがどのように機能するかについての情報を得るには、.Net ソースコードを取得してクラスがどのように実装されているかを確認するだけで十分簡単です。Eric notes として Microsoft から直接ダウンロードするか、簡単に見回すことができる逆コンパイラを使用できます (私は個人的にdotPeekを使用しています)。また、MS は .Net 2.0 までしかリリースしていないため、.Net 3.5+ コードを表示するには逆コンパイラが必要になることに注意してください。

于 2013-07-06T16:07:42.693 に答える