最近日課で毎日5-10分ほど興味のあるソースコードを読むようにしている。毎日少しずつ知らない知識がたまっていってなかなかよい。毎日少しずつコードリーディングのよさを伝えるためにブログにも記録することにした。
今読んでいるのは.Netの List.cs。 https://source.dot.net/ は関数をタップすれば実装にジャンプできるのでスマホでも読みやすい。
内部実装に T[] を使ったシンプルな動的配列として実装されている。versionという変数がちょっと変わっていて配列を書き換える度にインクリメントしている。前回アクセス時のversionの値を保存しておくことで、次回アクセス時に内容が書き換わったかをチェックすることができる。IEnumeratorなどで使われている。
IListなど色々なインターフェースに対応しているのは色々なニーズでも動くようにするためだろうか。
List