【C#】sealed キーワード ~ 継承禁止 / パフォーマンス向上 ~

■ sealed キーワード

 * 「sealed(シールド)」は「封印された」って意味
 * sealedクラスは継承不可
 => Java でいう final
 => 継承しようとするとコンパイルエラー
 => 拡張を他者にしてほしくない場合は sealed キーワードを付けるべき
http://msdn.microsoft.com/ja-jp/library/ff647790.aspx#scalenetchapt05_topic7
の「クラス設計に関する考慮事項」より抜粋

 * sealed キーワードの使用を検討する
  シールされた仮想メソッドは、インライン化など、コンパイラ最適化の対象となるので
  (若干の?)パフォーマンス向上に期待できる

 => どうせなら、デフォルトは、sealedキーワードを付加させればいいのに。

チェックリスト

ちなみに、チェックリストもあるみたい。
http://msdn.microsoft.com/ja-jp/library/ff647717.aspx

■ サンプル

public sealed class SampleClass
{
    // Class members here.
}

public class DemoClass : BaseClass
{
    public sealed override void DoSomething() { }
}