.NET の継承と値の型
.NET のすべてがオブジェクトであるかどうかという問題は、論争を引き起こしました。確かに、ほとんどの型は基本型 System.Object から継承しますが、例外もあります。
継承
すべてのクラス、配列、デリゲート型は System.Object から継承します。ただし、インターフェイス、ポインター型、およびオープン型パラメーターはそうではありません。インターフェイス型は System.Object に変換可能ですが、他のインターフェイス型から継承するだけです。ポインターおよびオープン型パラメーターの型には継承関係がありません。
値の型
整数、倍精度、ブール値などの値の型は、システムからも継承されます。 .オブジェクト。ただし、メモリおよびメソッドの受け渡しでは、参照型 (オブジェクト) とは異なる方法で扱われます。値の型はオブジェクトへの参照ではありません。それらはオブジェクトそのものです。値型はスタックに格納され、参照型はヒープに格納されます。値の型がメソッドに渡されると、メソッドは元の値への参照ではなく、値のコピーを取得します。これは、メソッド内の値の型に加えられた変更が元の値に影響しないことを意味します。
Boxing
値の型をオブジェクトとして扱うには、次のようにする必要があります。 箱入り。ボックス化により、値型の値を含む新しいオブジェクトがヒープ上に作成されます。新しいオブジェクトは参照型であり、共通言語ランタイム (CLR) によってオブジェクトとして扱われます。
結論
.NET のほとんどの型は継承します。 System.Object では、値の型は例外です。値型は、メモリおよびメソッドの受け渡しにおいて、参照型とは異なる方法で扱われます。ただし、必要に応じて、値の型をボックス化してオブジェクトとして扱うことができます。
以上が.NET では継承と値の型はどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。