C#と諸々

C#がメインで他もまぁ諸々なブログです
おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`)
つーかコメント欲しい(´・ω・`)

2006/07/24 19:46
拡張させることのないクラスにはsealedキーワードを付加してシールクラスとすること。
拡張させることのないメンバにはvirtualキーワードを付加しないこと。
シールすることによりコンパイラが最適化してくれる。また、他者に自分の意図しない拡張をされることも防げる。(場合によっては防げないけど・・・w)

拡張させることがわかってるクラスや、拡張させる可能性が充分あるクラスは当然シールするわけにはいかないが、それ以外のクラスって大概はシールしちゃっていいと思う。
「あとで機能追加させたい時に困る」なんてのはおかしい。そのクラス自体に手を入れれば済んだりするし(つーか、それで済むならそうすべき)、本当にそのクラスを継承して拡張させたい場合もsealedキーワード取り除いてメンバを適切にvirtualにすれば済むだけの話だし。

個人的には、クラス作成時にデフォルトでsealedキーワードが書き込まれてて欲しいな。