.NETでは、すべての型がSystem.Objectから継承することは事実です。
私が逆説的だと思うのは、System.Objectのいくつかのメソッドです。
- パブリック仮想文字列ToString();
- public virtual bool Equals(object objA、object objB);
System.StringはSystem.Objectから継承されます。
[Serializable]
public class String : Object { /*...*/ }
System.BooleanはSystem.Objectから継承されます。
[Serializable]
public struct Boolean : Object { /*....*/ }
System.Objectクラスがサブクラスをそのメソッドの戻り型として使用できるようにした内部で何が起こっているのでしょうか。循環参照があるように見えるので、このコードはどのようにコンパイルされましたか。文字列<->オブジェクト<->ブール値。
「それがどのように実装されているか」というステートメントが表示されることは確かですが、これらの戻り型が「System.Object」自体であるかどうかは理解でき、サブクラスはstring、bool、および新しい基本クラスを宣言する他のSystem.ValueTypes 。
それが理にかなっていることを願っています。
前もって感謝します、
ドミニク