好奇心から、mscorlib.dll を逆アセンブルして、System.Object クラスの実装を確認しました。
その中で奇妙なものを見つけました。
1).
public class Object {
...
protected override void Finalize(){}
...
}
基本クラスにオーバーライドされたメソッドがあるのはなぜですか?
2) public class Employee {
public void InstanceMethod() {
this.Finalize();
//Does not compile, can i not access protected methods of base class??
}
}
Object クラスでの「保護された Finalize」メソッドの使用と、コンパイラによる特別な処理が必要な理由を知りたいのですが。